mysql force index() 強制索引的使用
之前跑了一個SQL,由於其中一個表的數據量比較大,而在條件中有破壞索引或使用了很多其他索引,就會使得sql跑的非常慢。。。
那我們怎么解決呢?
這時候我么可以使用mysql force index() 強制索引來優化查詢語句;
使用MySQL force index 強制索引的目的是對目標表添加最關鍵的索引,使其優先使用該索引篩選數據;
select * from ws_shop a where date(create_time-interval 6 hour) > '2016-10-01 06:00:00'
如果表中的數據是百萬級的,這樣查詢是比較慢的;雖然你有可能在字段create_time上面加了索引,但是在where條件中又破壞了索引;導致索引失效;
這是我們優化為:
select * from ws_shop a force index(create_time) where date(create_time-interval 6 hour) > '2016-10-01 06:00:00'