由于必须加载整个表来回答查询并且对4个元素进行排序很便宜,因此查询优化器可能只是避免触摸索引。较大的表是否仍然会发生这种情况?
请注意,varchar(3000)列不能作为覆盖索引,因为MysqL在索引中最多只能包含varchar的前768个字节左右。
如果希望查询仅读取索引,则索引中必须包含要SELECT
查找的每一列。在innodb上,一旦您使textcol足够小,它应该就可以开始用于您的两列表。在MyISAM上,您需要自己包括主键列,例如CREATEINDEX textcolindex ON test (textcol,id);