mysql索引长度是如何进行计算的?

发布于 2022-09-11 20:16:22 字数 82 浏览 13 评论 0

我试了一下,char(n)在utf8-mb4下,索引长度key_len是4n+1
varchar(n)是4n+2,这个+1以及+2是什么意思呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

帅哥哥的热头脑 2022-09-18 20:16:22

不一定都是乘 4,n 乘多少是跟字符集有关的。乘 4 一般是 utf8mb4。

也不是 char 就 +1、varchar 就 +2,还要看该列是否可为空。

对于可空列:char 要 +1,用额外的一个字节存储值是否为空;varchar 要 +3,除了用一个字节存储值是否为空外,还要用两个字节存储实际的长度。

对于非空列:char 什么都不加;varchar 要 +2,存实际长度。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文