在sql語句中使用 like模糊查詢時,應該盡量避免%%,因為模糊查詢是比較慢的,當出現這樣的情況時,應該考慮優化。
舉個例子:我在表中查詢2012 年創建的記錄
SELECT * FROM `component_data` WHERE creation_date LIKE '2012%';
得到的時間
[SQL] SELECT * FROM `component_data` WHERE creation_date LIKE '2012%'; 受影響的行: 0 時間: 0.500ms
考慮優化之后的sql如下
SELECT * FROM `component_data` WHERE creation_date>='2012-01-01' AND creation_date<'2013-01-01';
運行結果
[SQL] SELECT * FROM `component_data` WHERE creation_date>='2012-01-01' AND creation_date<'2013-01-01'; 受影響的行: 0 時間: 0.328ms
可以看出,優化之后的提升是很大的。當查詢的結果比較多時,這個差異更為明顯。我這個查詢只有9000多條數據。
我只是舉了個例子。當遇到like查詢時,大家應該充分發揮你的聰明才智,具體問題進行具體對待,進行優化