2010-11-11 37 views
1

咱們說表A中創建的定義keyword varchar(255) collate latin1_general_cs索引在其上創建在區分大小寫的情況下創建的myisam表比不區分大小寫的執行更好嗎?

表B中有定義keyword varchar(255) collate latin1_general_ci創建,

都插入同一組數據

,並執行相同的一組查詢 select * from my_table where keyword='apple'

會比表B更快地查詢表A?

任何基準測試結果可以顯示出差異(或沒有差別在所有)

回答

3

測試是肯定的唯一途徑,但作爲案例敏感(CI)表示匹配更多的記錄,所以我的傾向是該區分大小寫的表現更好。

+0

小馬 - 以某種方式在同一個想法,但CS給你一些頭痛,你需要做'降低'這個和比較或更好的建議,'降低'? – ajreal 2010-11-11 17:55:12

+0

@ajreal:全文搜索(FTS)可能會有所幫助,因爲LOWER/etc會導致索引無用。您還可以在查詢中使用「COLLATE」表示法臨時強制大小寫/敏感。很少有銀彈 - 你必須審查選項並瞭解缺點。 – 2010-11-11 17:58:47

+0

測試似乎是唯一的方法,會抽出一些測試數據來真正測試它 – ajreal 2010-11-15 04:24:31