MySQL索引的大小限制是什么意思?

我有一个这样创建的表:

CREATE TABLE `my_table` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`info` varchar(50) DEFAULT NULL,
`some_more_info` smallint(5) unsigned NOT NULL
PRIMARY KEY (`id`),
KEY `my_index` (`some_more_info`,`info`(24)),
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

我的问题是关于名为my_index的第二个键的. “(24)”大小限制是什么意思?该列的实际大小为50,但索引只有24个字符.

这是否意味着MySQL仅索引列信息的前24个字符?

解决方法:

简而言之,是的,构建BTree索引时要考虑前24个字符.索引限制被分配给诸如varchar和text之类的文本类型,因为它们不影响数值精度.

上一篇:如何找出mysql中索引的大小(包括主键)


下一篇:MySQL:复合索引全文btree?