mysql using intersect导致效率变慢

@liubb  December 1, 2017
explain SELECT DISTINCT  `id`,`fid`,`aid`,`daction`,`dmoney`,`lmoney` FROM pft_member_journal 
WHERE `rectime` BETWEEN '2017-03-13 00:00:00' AND '2017-03-13 23:59:59' AND `fid` = 4 AND `aid` = 50618 AND `ptype` = 2

发现 extra里使用了using intersect。

通过设置 SET optimizer_switch = 'index_merge_intersection=off'

再次执行exolain sql语句 变成了using index condition
执行sql语句 速度变得飞快

或者强制不使用索引

SELECT DISTINCT  `id`,`fid`,`aid`,`daction`,`dmoney`,`lmoney` FROM pft_member_journal IGNORE index(aid,fid)
WHERE `rectime` BETWEEN '2017-03-13 00:00:00' AND '2017-03-13 23:59:59' AND `fid` = 4 AND `aid` = 50618 AND `ptype` = 2

添加新评论