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, 索引會失效, 導致全表掃描.