我有一個MySQL表,爲此我非常頻繁地查詢SELECT x, y, z FROM table WHERE x LIKE '%text%' OR y LIKE '%text%' OR z LIKE '%text%'
。任何種類的索引是否有助於加快速度?如何加快在多列MySQL中的SELECT .. LIKE查詢?
表中有幾百萬條記錄。如果有什麼會加快搜索速度,是否會嚴重影響數據庫文件的磁盤使用率以及INSERT
和DELETE
語句的速度? (無UPDATE
被執行過)
更新:發佈之後很快,我已經看到了很多關於LIKE
在查詢中使用信息的方式和討論;我想指出,解決方案必須使用LIKE '%text%'
(也就是說,我正在查找的文本是前置的並附有%通配符)。數據庫也必須是本地的,原因很多,包括安全性。
想想這樣,它不是一個完美的比喻,但它表明了這一點。考慮在後面有一個詞索引的書。如果你想查找一個簡單的單詞或者甚至是以相同的前幾個字母開頭的單詞,那麼沒有問題。考慮當你想使用該書籍索引來查找包含單詞中任何地方的字母「exe」的所有單詞時會發生什麼。這個索引幾乎沒有用,你可能會閱讀真正的書來尋找這些詞。這大致是你在mySQL上施加的問題。 – JohnFx