mysql中in的效率
来源:互联网 发布:python web监控系统 编辑:程序博客网 时间:2024/05/29 13:39
select * from user where user.id in (1,2,3,4,5,6,7,8)
mysql对这种语句的执行效率是很高的,他的执行分几步来实现。
第一步:
将in中的数据排序,
第二步:
将user表中的行中的id用二分法在排序后的序列中查找,这样的查找速度非常高
再来看第二种情况
select * from user where user.id in (select id from user where user.id>0 and user.id <10);
这种情况下,mysql会优化的很差,在高性能MYSQL的180页有非常详细的说明,就是mysql优化这种查询的时候试图将外面的查询和里面的查询产生某种关联。
会优化成
select * from user u1 where exists(select id from user u2 where u2.id>0 and u2.id<10 and u1.id=u2.id );
这样当然会非常慢
解决办法是自己写连接查询
select * from user u1 inner join user u2 using(id) where u1.id>0 and u1.id<10;
0 0
- mysql中in的效率
- mysql中or和in的效率问题
- mysql中or和in的效率问题
- mysql中or和in的效率问题
- mysql中or和in的效率测试
- mysql中or和in的效率问题
- mysql中in与exists的性能与效率对比
- mysql中or和in的效率问题
- mysql中or和in的效率问题
- mysql中or和in的效率问题
- mysql中or和in的效率问题
- mysql中or和in的效率问题
- mysql中or和in的效率问题
- mysql in的效率问题
- mysql中IN和EXITS效率
- mysql中in子查询效率优化
- MySql中in和exists效率对比
- MySql中in和exists效率
- 如何让你的Tomcat在开机时自动以服务的形式启动
- 浙大 pat Basic Level 1012
- Oralce Function
- Dogecoin P2Pool自建矿池的方法(狗币/DOGE)
- webkit find功能浅析
- mysql中in的效率
- Qt学习---6
- linux文件操作函数
- LeetCode 题解(30): Rotate Image
- 虫草花的润肌护肤美容功效
- Json的解析和生成
- BZOJ1345: [Baltic2007]序列问题Sequence
- Spring事务配置的五种方式
- 浙大 pat Basic Level 1013