我有一个这样创建的表:
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之类的文本类型,因为它们不影响数值精度.