我的應用程序將提供一個「聽起來像」給定類型名稱的英文名稱建議列表。優化Soundex尋找類似名稱的查詢
該查詢需要進行優化並儘可能快地返回結果。哪個選項最適合快速返回結果。 (或者你自己的建議,如果你有的話)
A.生成Soundex Hash並將其存儲在「Names」表中,然後執行如下操作:(這節省了爲我的至少每一行生成soundex散列每次查詢右分貝?)
選擇的名字從名字在那裏NameSoundex = SOUNDEX(「安」)
B.採用差分功能(這必須生成表中的每個名字的同音? )
從名稱選擇名稱,其中差異(名稱, '安')> = 3
C.簡單比較
從名稱選擇名稱,其中探測法(名稱)=探測法( '安')
選項A好像對我來說會以最快的速度返回結果,因爲它只是一個字符串產生了Soundex然後比較對索引列「NameSoundex」
選項B應給予比選擇更的結果,因爲該名稱不必是同音的精確匹配,但可能會比較慢
假設我的表可能包含數百萬行,你會產生最好的結果?
看來你已經回答了你自己的問題。選項A確實是最快的。選項B的確會產生更多的結果,並且會更慢。選項C會給你與選項A相同的結果,但也會(很慢)。 – 2010-04-15 08:51:40