MariaDB社区
标题:
[求助]SQL语句优化问题
[打印本页]
作者:
gilles
时间:
2013-4-28 11:24
标题:
[求助]SQL语句优化问题
项目中遇到一段SQL语句类似如下:
SELECT
*
FROM
`table1`
WHERE uid IN(
SELECT
uid
FROM
`table2`
WHERE
time >= '2013-04-26 17:00:00'
AND time <= '2013-04-27 17:00:00'
AND owner_uid = 1
) AND a.owner_uid IN (1)
LIMIT 0, 20;
复制代码
其中table1建了唯一索引
UNIQUE KEY `owner_uid` (`owner_uid`,`uid`)
复制代码
table1和table2都是百万级别的表,但子查询的结果非常小,大概只有50条记录左右。
如果将子查询改为实际的记录,SQL如下:
SELECT
*
FROM
`table1`
WHERE uid IN(
1, 2, 3, ... , 50
) AND a.owner_uid IN (1)
LIMIT 0, 20;
复制代码
则查询效率很高,大概0.07秒就能完成。如果用最开始的SQL语句则需要2.5秒左右才能完成,如果单独执行子查询也只需要0.9秒。请问是什么原因导致的,如何优化?
作者:
气质装饰情
时间:
2016-1-18 17:12
癫痫病的治疗方法
http://jiankang.zkxww.com/new/
癫痫病的治疗方法
http://health.lzbs.com.cn/zhiliao/
癫痫病的早期症状
http://health.lzbs.com.cn/zhengzhuang/
癫痫病的早期症状
http://haoyy.yuqinge.com/dxzz/
北京治疗癫痫医院
http://jiankang.zkxww.com/
北京治疗癫痫医院
http://health.lzbs.com.cn/dxyy/
北京治疗癫痫医院
http://haoyy.yuqinge.com/lzyy/
北京癫痫专科医院
http://jiankang.zkxww.com/
北京癫痫专科医院
http://haoyy.yuqinge.com/dxyy/
治疗癫痫最好的医院
http://health.lzbs.com.cn/
欢迎光临 MariaDB社区 (http://123.56.88.72/)
Powered by Discuz! X3.2