MySQL中的索引大小

Tom*_*mmy 7 mysql indexing

我刚开始研究MySQL数据库的优化问题.从我正在阅读的内容来看,索引似乎是一个好主意 - 所以我想在我的一个VARCHAR列上使用MyISAM引擎创建一个索引.

从我正在阅读的内容来看,我理解索引的大小限制为1,000字节.但是,VARCHAR字符大小为3个字节.这是否意味着如果我想索引一个VARCHAR包含50行的列,我需要一个6个字符的索引前缀?(每个字符1,000个字节/ 50行/ 3个字节= 6.66)

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

我错过了什么吗?

Qua*_*noi 4

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

索引长度限制为、中1000的字节(每列)。MyISAM767InnoDB

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

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

  • @Tommy:它适用于您可以在单个记录的索引列中存储的最大字符数。 (2认同)