最近,又遇到了慢 SQL,简单的看了下,又是因为 MySQL 本身优化器还有查询计划估计不准的问题.SQL 如下: select * from t_pay_record WHERE (( user_id = 'user_id1' AND is_del = 0 )) ORDER BY id DESC LIMIT 20 这个 SQL 执行了 20 分钟才有结果.但是我们换一个 user_id,执行就很快.从线上业务表现来看,大部分用户的表现都正常.我们又用一个数据分布与这个用户相似的用户去查,还是比
IN为什么慢? 在应用程序中使用子查询后,SQL语句的查询性能变得非常糟糕.例如: SELECT driver_id FROM driver where driver_id in (SELECT driver_id FROM driver where _create_date > '2016-07-25 00:00:00'); 独立子查询返回了符合条件的driver_id,这个问题是解决了,但是所用的时间需要6秒,可以通过EXPLAIN查看SQL语句的执行计划: 可以看到上面的SQL语句变成了相