MySql in子句 效率低下优化
2015-08-21 22:09
513 查看
MySql in子句 效率低下优化
背景:
更新一张表中的某些记录值,更新条件来自另一张含有200多万记录的表,效率极其低下,耗时高达几分钟。
耗时 365s
优化后
耗时 1.41s
总结:对于where xxx in 子句效率极其低下问题,经过in的子句外包装一层select xxx from( ... )as tmp 后,极大优化效率。
背景:
更新一张表中的某些记录值,更新条件来自另一张含有200多万记录的表,效率极其低下,耗时高达几分钟。
update clear_res set candelete=0 where resid in ( select distinct resourceid from att_attentionresult where important=0 );
耗时 365s
优化后
update clear_res set candelete=0 where resid in ( select resourceid from ( select distinct resourceid from att_attentionresult where important=0 ) as tmp );
耗时 1.41s
总结:对于where xxx in 子句效率极其低下问题,经过in的子句外包装一层select xxx from( ... )as tmp 后,极大优化效率。
相关文章推荐
- PostgreSQL与MySQL常用命令比较[转]
- Mysql的主从同步设置
- mysql性能优化
- Mysql 建表 数据类型选择
- mysql 幻读
- 数据库 mysql 优化器原理
- MySQL 调优/优化的 100 个建议
- mysql 正则表达式 regexp rlike not rlike
- keepalived+mysql双主实现数据库冗余
- mysql查询各种类型的前N条记录
- MySQL的重新安装问题
- 新安装的wampserver怎么使用本机已有的mysql作为数据库
- mysql带参存储过程
- mysql查看正在执行的sql语句
- mysql数据库优化之表的设计和慢查询定位
- MySQL外键设置中的的 Cascade、NO ACTION、Restrict、SET NULL
- mysql 设置参照完整性
- 使用gdb编译调试mysql
- Mysql-半同步
- MySQL数据乱码