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