mysql的force index

MSQL中使用order by 有个坑,会默认走order by 后面的索引。而不走where条件里应该走的索引。大家在使用时要绕过此坑。 

如下语句因为order by 走了settle_id这个主键,每次查询要4-6秒。

 

如果语句里非要有order by。那么将语句改写:

FROM

`wxhc_settle` force index (idx_user_id)

WHERE

`c_user_id` = 43865 

AND  gmt_create>'2018-09-12 00:00:00' 

AND `status` IN (0, 1)

ORDER BY

`settle_id` DESC

LIMIT 15,

45;

 

posted @ 2018-09-18 10:42  ThinkVenus  阅读(746)  评论(0编辑  收藏  举报