2013-04-23 55 views
0

我的目標是避免嘗試匹配通配符的查詢,因爲它比查找匹配帶有通配符的前綴的查詢要慢100倍。用mysql匹配單詞列表的前綴

對於一個單詞它不是一個問題,但是如果我有用逗號分隔的單詞列表呢?

是否有任何有效的方法來匹配這些單詞的前綴(跟隨通配符),而不是僅通配符?

我的意思是有沒有什麼辦法可以避免這種情況下匹配模式像%word%?

回答

2

推定是你在列表上有一個索引。否則,like的性能不應比使用前綴匹配與非前綴匹配慢100倍。是的,有點慢。但大部分的努力應該是從網頁上讀取數據。

如果您有用逗號分隔的單詞列表,那麼您的數據結構錯誤。你需要引入一個帶有id和每個單詞的新表。

將數據正確歸一化後,可以針對查詢使用適當的關係構造,並免除使用like來連接表或查找元素。

+0

你說得對,我正在使用索引。而且你的解決方案再次合適。我會在9分鐘內接受你的回答:) – 2013-04-23 18:37:08