在sql语句中in关键字提示查询性能
2010-07-21 22:42
459 查看
这几天一个模块即将结束,便开始进行一些优化,以提升性能。发现一个sql语句的查询速度是6秒,这明显让使用者等待过长。
语句其实挺简单的,上学的时候经常这么写,而且记得好多教科书中也是这么写的。
简要形式:
SELECT t1.field1,t1.field2,t1.field3 from t1,t2 where t1.pid = t2.fid and t2.ch='%123456%'
这里t1表和t2表是相互关联的,
分析这段sql语句,为什么会耗费这么长的时间呢?该怎么优化呢?
t2表中有大量的数据,要是将2个表做等值关联,等于建立了一个巨大的表,然后在这个巨大的表中做查询,怪不得这么慢呢。
要是能减小等值关联后的表大小,就可以好很多了。所以想到了in关键字
将sql修改为:
SELECT t1.field1,t1.field2,t1.field3 from t1 where t1.pid in (select fid from t2 where t2.ch='%123456%')
执行新的sql,耗费时间为3秒。
语句其实挺简单的,上学的时候经常这么写,而且记得好多教科书中也是这么写的。
简要形式:
SELECT t1.field1,t1.field2,t1.field3 from t1,t2 where t1.pid = t2.fid and t2.ch='%123456%'
这里t1表和t2表是相互关联的,
分析这段sql语句,为什么会耗费这么长的时间呢?该怎么优化呢?
t2表中有大量的数据,要是将2个表做等值关联,等于建立了一个巨大的表,然后在这个巨大的表中做查询,怪不得这么慢呢。
要是能减小等值关联后的表大小,就可以好很多了。所以想到了in关键字
将sql修改为:
SELECT t1.field1,t1.field2,t1.field3 from t1 where t1.pid in (select fid from t2 where t2.ch='%123456%')
执行新的sql,耗费时间为3秒。
相关文章推荐
- 在sql语句中in关键字提示查询性能
- sql查询语句中 in和 exists的区别与性能比较
- 使用in关键字来限制SQL语句中的select查询结果
- 比in效率更高的sql查询语句
- SQL 查询语句性能对比分析
- 关于Sql语句中的模糊查询like关键字详解
- 对多表联合查询的SQl语句的改进,大幅提高查询性能
- 【转】SQL点滴10—使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比
- 在SQL语句中使用索引提示提高SQL性能
- Mybatis中sql语句中的in查询,一定要判断null的情况
- .Net+SQL Server企业应用性能优化笔记3——SQL查询语句
- sql查询语句的优化,exists与in的更换
- Sql语句与存储过程查询数据的性能测试实现代码
- 学习并使用了两种linq to entity 的实现sql关键字in的查询方法
- 【查询优化】怎样用SQL语句查看查询的性能指标
- 使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比
- jfinal中sql语句中的in关键字
- sql查询语句的优化,exists与in的更换
- mysql查询语句in和exists二者的区别和性能影响
- Mybatis中sql语句中的in查询,一定要判断null的情况