这里主要有以下5点原因:1、hash函数计算后的结果,是随机的,如果是在磁盘上放置数据。比主键为id为例, 那么随着id的增长, id对应的行,在磁盘上随机放置. 2、不法对范围查询进行优化。...优化
建议使用union all 而不是union。...union all 不过滤 效率提高,如非必须,请用union all。因为 union去重的代价非常高, Mysql会把各个查询结果插入到临时表中,然后做唯一性检查。所以请放在程序里去重。...性能分析工具
开启慢查询日志
MySQL 慢查询的相关参数解释:
slow_query_log :是否开启慢查询日志,1表示开启,0表示关闭。...* from test.tabname where id in(1,3,5,7,9,11,13,15,17,19);
通过explain发现其实他是先根据关联外部tabname, 而不是先去执行这个子查询