2代表我有兩個MySQL表:"list"
和"more"
MySQL的加入基於文本字段
「列表」表有向上10萬條。
「更多」表有超過50,000個結果。
來自這些表的數據不能組合。
問題是,我在這兩個表中都有一個名爲「short_title」的列。它們都是VARCHAR(255),並且會包含一個像「short-title-here」這樣的字符串。
我用一個簡單的查詢,如:
SELECT L.title, M.more_info
FROM `list` L, `more` M
WHERE M.short_title = L.short_title
由於在每個表這麼多的成果,我需要基於「short_title」列這是一個文本字段中的匹配結果它使查詢極其緩慢。
有關於在"list"
表"short_title"
列的索引,並在我的"more"
表"short_title"
列是唯一
有什麼我可以做的到列(例如:使它們全文),這將使這些查詢更快?
預先感謝您
**** ****更新
我已經改變了我的查詢INNER JOIN兩個表。
的解釋查詢的結果可以在這裏找到:
由於您正在比較列的相等性,我不認爲您需要全文功能......只要確保在兩個表的short_title列上都有一個索引即可。 – Frazz
謝謝,但我在列表中的''short_title''列已經包含一個INDEX,並且''more''表中的''short_title''列被設置爲UNIQUE - 如果我添加一個指數,phpMyAdmin提醒我,我不應該在同一列有兩個INDEXes – user1298740
你確定索引統計數據是否更新?如果不是,引擎可能無法正確使用您的索引。查詢執行需要多長時間?你有解釋計劃來向我們展示嗎?只是要檢查正在使用的索引。另外...你是否嘗試了INNER JOIN語法而不是舊的多元WHERE語法? – Frazz