[原创]INNODB前缀索引、索引长度

INNODB的索引会限制单独Key的最大长度为767字节,超过这个长度必须建立小于等于767字节的前缀索引。
前缀索引能提高索引建立速度和检索速度,但是无法使用:
  • 索引覆盖扫描
  • 通过索引的排序
在utf8编码中,INNODB会使用编码上限计算,即每个字符占用3字节空间。
所以在utf8编码中,能使用完整索引的最大varchar长度为255(255*3=765)
在utf8mb4编码中,INNODB会使用4字节计算,所以能使用完整索引的最大varchar长度为191(191*4=764)

Ps.INNODB只对索引中的单列限制Key长度,不会限制联合索引的总长度,即联合索引中每个列最大长度小于等于767字节即可。

留言

comments powered by Disqus

Previous topic

[原创]INNODB中NULL字段使用

Next topic

[原创翻译]FriendFeed如何用MySQL储存无模式数据