SELECT * FROM articles WHERE title LIKE '%query%' AND user_id=123
Mysql WHERE語句執行期間的優先級
user_id
列是索引。 Mysql如何執行此查詢?我認爲,這樣LIKE優先級最低,對吧?
謝謝。
SELECT * FROM articles WHERE title LIKE '%query%' AND user_id=123
Mysql WHERE語句執行期間的優先級
user_id
列是索引。 Mysql如何執行此查詢?我認爲,這樣LIKE優先級最低,對吧?
謝謝。
EXPLAIN SELECT * FROM articles WHERE title LIKE '%query%' AND user_id=123
,將告訴這一切:)
的MySQL幾乎肯定會使用USER_ID指數。
對於一般的查詢,優化器將計算出可能的訪問路徑,並使用一些預先計算的表格內容的統計數據來估計哪些是最快的。
例如,如果你的articles
表也有一個日期列article_date
這是索引,你執行的查詢與兩個user_id
和article_date
謂詞。那麼MySQL將不得不估計哪個索引將是最快選擇所需行的索引。
如果每天有大量不同用戶的文章數千篇,那麼user_id索引可能是最好的。但是,如果每天只有幾篇文章,但大多數用戶發佈大量文章,則可以使用article_date索引來代替。
使用說明語法 – Codler 2010-08-10 13:49:11