每个数据库都有一些使用限制,比如标识符的长度限制、单库/单表数据量限制、行宽限制、索引个数限制等。
本文就 TiDB 数据库中的一些使用限制做一个完整的说明,整体上分为有限制和无限制进行说明。
无限制
维度 |
---|
Database 个数 |
Table 个数 |
View 个数 |
Connections 个数 |
单个 Database 中 Table 个数 |
单个 Table 的 Row 行数 |
单个 Table 的 Size 大小 |
有限制
维度 |
默认值上限 |
最大调整上限 |
调整参数 |
---|---|---|---|
标识符长度(database/table/column/index/view/sequence) |
64 |
/ |
/ |
单表Column个数 |
1017 |
4096 |
table-column-count-limit |
单表Index个数 |
64 |
512 |
index-limit |
单表Partition个数 |
8192 |
||
单行Size大小 |
6 MB |
120 MB |
txn-entry-size-limit |
单行Key大小 |
3072 Byte |
12288 Byte |
max-index-length |
单索引Column个数 |
16 |
/ |
/ |
单Sql长度限制(受服务端和客户端一次传送数据包大小限制) |
64 MB |
1 GB |
max_allowed_packet |
单事务最大语句条数(仅限可重试的乐观事务模式下) |
5000 |
开启悲观事务或关闭事务重试后无限制 |
stmt-count-limit |
部分超限错误提示
- 单表Column个数超限
ERROR 1117 (HY000): Too many columns
- 单表Index个数超限
ERROR 1069 (42000): Too many keys specified; max 64 keys allowed
- 单表Partition个数
ERROR 1499 (HY000): Too many partitions (including subpartitions) were defined
- 单行Size大小
ERROR 1406 (22001): Data too long for column 'b' at row 1
- 单行Key大小
ERROR 1071 (42000): Specified key was too long (4000 bytes); max key length is 3072 bytes
- 单索引Column个数
ERROR 1070 (42000): Too many key parts specified; max 16 parts allowed