Mysql在不同版本下使用子查询/嵌套查询很慢的解决办法

日期:2016-06-01 21:56:30

留言:0

分类:经验心得

标签: Linux SQL

在Mysql使用嵌套查询时,如

SELECT * FROM T1 WHERE id IN (
 SELECT id FROM T2
)

在5.6上运行正常,查询量不是太大的时候,都是毫秒级别,但是这条语句放到5.1上跑的时候,因为数据库版本不同,一万条数据嵌套查询花费了十多秒,简直是慢到不能忍了。

后来测试可以通过临时表的方式解决,写法如下:

SELECT * FROM T1 WHERE id IN (
 SELECT id FROM (
  SELECT id FROM T2
 ) AS T
)

感觉上是有点多此一举,写法比较奇葩,但是这个sql的意义跟上面是差别很大的,并且在Mysql5.1和5.6上运行都没有问题了。

给我留言
留言表
ZengDongwu
Hi ~ 当前还没有人留言,欢迎您给我留言 ^_^