MySQL之InnoDB之最

  • InnoDB表空间的最大容量为64TB。

  • 一个表最多可以包含1017列。虚拟生成的列包含在此限制中。

  • 一个表最多可以包含64个二级索引。

  • 对于使用冗余或紧凑行格式的InnoDB表,索引键前缀长度限制为767字节。例如,如果TEXT或VARCHAR列上的列前缀索引超过191个字符,则可能会达到此限制,假定一个utf8mb4字符集,并且每个字符的最大值为4个字节。

  • 如果在创建MySQL实例时通过指定选项将InnoDB 页面大小减小到8KB或4KB innodb_page_size,则基于16KB页面大小的3072字节限制,按比例减小索引键的最大长度。即,当页面大小为8KB时,最大索引键长度为1536字节,而当页面大小为4KB时,最大索引键长度为768字节。

  • 多列索引最多允许16列。

  • 对于4KB,8KB,16KB和32KB的页面大小,最大的行大小(不包括页面外存储的任何可变长度列)都小于页面的一半。例如,默认的最大innodb_page_size16KB 行大小 约为8000个字节。但是,对于InnoDB 64KB 的页面大小,最大行大小约为16000字节。LONGBLOB和 LONGTEXT 列必须小于4GB,并且总行大小(包括BLOB和 TEXT列)必须小于4GB。
    如果一行的长度小于半页,则所有行都存储在该页的本地。如果超过半页,则选择可变长度列作为外部页外存储,直到行适合半页。

  • 虽然InnoDB内部支持大于65535字节的行大小,但MySQL本身对所有列的组合大小施加了65535的行大小限制。

  • 在某些较旧的操作系统上,文件必须小于2GB。这不是InnoDB限制。如果需要大型系统表空间,请使用几个较小的数据文件(而不是一个大型数据文件)进行配置,或者在每个表文件和常规表空间数据文件之间分配表数据。

  • InnoDB日志文件的 最大总大小为512GB。

  • 最小表空间大小略大于10MB。最大表空间大小取决于 InnoDB页面大小。

  • 在Windows上,表空间文件的路径(包括文件名)不能超过MAX_path限制。在Windows 10之前,最大路径限制为260个字符。从Windows10版本1607起,MAX_PATH限制从常见的Win32文件和目录函数中删除,但必须启用新行为。

InnoDB页面大小 最大表空间大小
4KB 16TB
8KB 32TB
16KB 64TB
32KB 128TB
64KB 256TB

你可能感兴趣的:(MySQL)