首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL中的索引大小

MySQL中的索引大小
EN

Stack Overflow用户
提问于 2010-04-08 20:21:41
回答 2查看 2.7K关注 0票数 7

我刚刚开始研究我的MySQL数据库的优化。根据我所读到的内容,索引似乎是一个好主意-所以我想使用MyISAM引擎在我的一个VARCHAR列上创建一个索引。

根据我所读到的内容,我知道索引的大小限制为1,000字节。不过,VARCHAR字符的大小是3个字节。这是否意味着如果我想索引一个有50行的VARCHAR列,我需要一个6个字符的索引前缀?(1,000字节/ 50行/每个字符3字节= 6.66)

如果是这样的话,这看起来有点复杂--这就是为什么我质疑我的理解。使用1个字符的前缀,您只能为VARCHAR列中的333行创建索引,这似乎非常奇怪。

我是不是遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-08 20:27:06

根据我所读到的内容,我了解到索引的大小被限制在1000字节。

Index key长度在MyISAM中限制为1000字节,在InnoDB中限制为767字节(每列)。

这意味着在UTF8表中,单个MyISAM列的索引长度不能超过333个字符(在计算最大索引大小时,MySQL假定每个字符有3个字节,尽管实际长度可能要小得多)

您可以根据需要创建任意数量的索引记录。

票数 4
EN

Stack Overflow用户

发布于 2010-04-08 20:25:52

我想它的意思是varchar宽度。如果索引的最大大小是1000字节,而varchar是3字节长,那么最大可索引大小将是1000/3。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2599708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档