mysql查詢語句中使用DATE_FORMAT函數對索引的影響? ? ?

1.出現的問題如下:

表數據量很大, 百/千萬級別的數據, 進行表查詢發現很慢很慢…( 10s ~ 20s ), 於是進行優化.

2.explain查看是否使用索引?

原SQL語句: ( 只貼出部分語句 )

explain select id from user where DATE_FORMAT(createDate,'%Y-%m-%d') >= '2020-01-12'

執行分析如下: ( crateDate這個時間字段, 並沒有使用索引, 況且進行了全表掃描( 百萬條數據 ) , 當然會很慢了. )
在這裏插入圖片描述


優化SQL語句:

explain select id from user where createDate >= '2020-01-12'

執行分析如下: ( 使用了索引, 查詢條數減少 )
在這裏插入圖片描述

3.結論:

應儘量避免使用該函數DATE_FORMAT, 索引會失效, 導致全表掃描.

發佈了107 篇原創文章 · 獲贊 172 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章