我有个问题,我当时正在读MySQL博士(https://dev.mysql.com/doc/refman/8.0/en/column-indexes.html#column-indexes-spatial),我看到了这个.
所有存储引擎每个表至少支持16个索引,总索引长度至少为256个字节。
但我在寻找答案,但我没有找到解决我问题的答案,问题是,“索引长度”是什么意思?如果大小通常要大得多,为什么要找256个字节呢?
pd:英语不是我的母语
发布于 2022-10-07 15:39:05
在这种情况下,索引长度是指索引中包含的列(或列)的数据类型的大小。例如,一个INT是4个字节,一个BINARY(10)是10个字节,一个带有utf8mb4字符集的VARCHAR(10)高达40个字节(utf8mb4每个字符最多可以使用4个字节)。
有关每种数据类型存储的详细信息,请阅读https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html。
您可以创建多列的索引。总索引长度是该索引中每个列的大小之和。例如,两个INT列加上一个VARCHAR(10)将是4+4+ 40 =48个字节。
该文档中提到的最小256字节意味着所有存储引擎允许索引长度至少为256个字节。
InnoDB是默认的存储引擎,它允许当前版本的MySQL 8.0中的索引长度高达3072字节。例如,这将支持VARCHAR(768)上带有utf8mb4的索引。
https://stackoverflow.com/questions/73988956
复制相似问题