2
我很好奇这是如何处理的。我有一个名为title
的varchar(255)
列,它有索引的前10个字符。在VARCHAR中引用索引前缀时,MySQL如何使用ORDER BY?
如果我创建一个按标题排序的MySQL查询,它是单独利用该索引,还是忽略它,还是必须发出命令来使用该索引?
例如假设我有两个title
项目命名为:
This is the same thing
This is the same thing only slightly different
前10个字符是相同的,那么,如何MySQL的处理这个问题?它是否使用前缀索引到前10个字符,然后逐行索引?
MySQL可能会或可能不会使用索引。声明的解释将显示索引是否被使用。使用'ORDER BY title',使用索引是不够的,除非MySQL有一些神奇的方式来知道没有标题超过10个字符长度......我认为它不是,如果它确实如此,它可能因存储引擎而异(MyISAM与InnoDB)。 MySQL有可能利用索引来优化排序,但它不能完全避免排序,至少不能使用该索引。 – spencer7593 2012-07-06 23:42:37