![5e4240e204659ef0551007e058463c15.png](https://i-blog.csdnimg.cn/blog_migrate/c3a2350b5b8afa8e5dfc37f594dac42c.jpeg)
最大和最小
- 一个表里最多可有1017列(在MySQL 5.6.9 之前最大支持1000列)。虚拟列也受限这个限制。
- 一个表最多可以有64个二级索引。
- 如果innodb_large_prefix打开,在InnoDB表DYNAMIC或COMPRESSED列格式下,索引前缀最大支持前3072字节;如果不打开的话,在任意列格式下,最多支持前767字节。 这个限制既适用于前缀索引也适用于全列索引。
- 基于一个16KB的页最多装3072个字节,如果你把InnoDB 的page 大小从8KB降到4KB,索引的长度也相应的降低。也就是说,当页是8KB的时候最大索引长度是1536字节;当页大小是4KB的时候最大索引长度是768字节;
- 联合索引最多支持16列,如果超过这个限制就会遇到以下错误: ERROR 1070 (42000): Too many key parts specified; max 16 parts allowed行长度(除去可变长类型:VARBINARY/VARCHAR/BLOB/TEXT),要小于页长(如4KB, 8KB, 16KB, and 32KB)的一半。 例如:innodb_page_size 长度是16KB的话,行长不超过8KB;如果innodb_page_size 是64KB的话,行长不超过16KB; LONGBLOB/LONGTEXT/BLOB/TEXT列必须小于4GB,整个行长也必须小于4GB