sql not in 查询,效率低

问题描述

sql not in 查询,效率低

select a from table
where a not in (1,2,3) 换成 not exist 要怎么写,另外not in执行效率真的很低,有什么可替代的?

解决方案

SQL里的EXISTS与in、not exists与not in(转载)_GG??

2009-06-28 16:18:05|??分类:?Oracle|举报|字号?订阅

SQL里的EXISTS与in、not exists与not in(转载)
2007年12月12日 星期三 21:22

系统要求进行SQL优化,对效率比较低的SQL进行优化,......
答案就在这里:SQL里的EXISTS与in、not exists与not in 效率问题

解决方案二:

 select a from table
where  not exists(select 1
                      from table
                      where a in(1,2,3))

解决方案三:

这个效率低吗,你能说说如何个低法吗。

解决方案四:

换成not exists,同一张表检索两次,效率不如not in。

解决方案五:

select a from table
where not exists(select *
from table
where a in(1,2,3) )

                                        不过这样效率也不高 还不如你自己的  要根据具体情况具体讨论

解决方案六:

如果in()中的数据太多的话,考虑用表连接吧,如果不是太多的话还是用in吧

时间: 2024-08-03 13:06:12

sql not in 查询,效率低的相关文章

找出mysql中like模糊查询效率低的sql语句

相比update和insert,一般查询应该是数据库中操作最频繁的.而在有些应用场景需要用到like模糊查询,那么对于大数据,查询的时候就要注意了.   现在来分析一下为什么like语句查询的效率会很低,测试数据共4000000条,如下图:     第一步:不使用索引 下图可以看出,不使用索引的时候普通查询与like查询的耗时相当,like略长,这也是必然的,因为它要进行额外的算法.     第二步:使用索引   如下图,使用索引后,普通查询的耗时基本算是秒查,非常快:而like查询还是耗时一秒

java-html页面查询效率低下是什么原因?

问题描述 html页面查询效率低下是什么原因? html页面查询效率低下是什么原因?html页面查询效率低下是什么原因?html页面查询效率低下是什么原因?html页面查询效率低下是什么原因?html页面查询效率低下是什么原因?html页面查询效率低下是什么原因?html页面查询效率低下是什么原因?点击查询按钮,查询缓慢 解决方案 你先检查一下你的查询语句 看下你的查询语句在数据库里面的消耗是多少 如果没什么问题 那可能就是将数据集绑定到页面的时候效率比较低了 解决方案二: 这个原因有很多,例如

查询mysql中执行效率低的sql语句的方法_Mysql

一些小技巧1. 如何查出效率低的语句?在MySQL下,在启动参数中设置 --log-slow-queries=[文件名],就可以在指定的日志文件中记录执行时间超过long_query_time(缺省为10秒)的SQL语句.你也可以在启动配置文件中修改long query的时间,如: 复制代码 代码如下:  # Set long query time to 8 seconds    long_query_time=8 2. 如何查询某表的索引?可使用SHOW INDEX语句,如: 复制代码 代码如

多表关联查询效率就很低,有没有只改SQL的优化方案?

问题描述 简化模型如下:select * from t,ut,uwhere t.tid = ut.tid and ut.uid = u.uid其中t表和ut表的数据量都在300W的样子,u表的数据量200条左右查询时间在10秒左右有没有什么好的优化方案?只从数据库这一层来做优化的(历史原因:任SB设计人员非要搞了一个中间表ut,实际上在t表中多搞一个uid的字段就好了,然后可以废除ut表,但是修改模型的话代价太大了) 解决方案 一下子查询出来这么多数据时间当然久了,试着查询出100条记录试试,如

oracle查询效率问题,分时间段查询数据效率低

问题描述 oracle查询效率问题,分时间段查询数据效率低 小弟菜鸟一枚,今遇到一问题请教高手,问题如下: 用户有一需求,要求查询某个时间段内(如2014-05-01 -- 2014-05-31),每十二小时的生产数据,8:00--20:00, 20:00--8:00, 所以小弟先建了个临时表,将每个时间段都分出来,时间段如下: 2014-5-1 7:01:00 --2014-5-1 8:00:00 2014-5-1 8:00:00 --2014-5-1 20:00:00 ....... 然后再

MySQL优化之如何查找SQL效率低的原因_Mysql

查询到效率低的 SQL 语句 后,可以通过 EXPLAIN 或者 DESC 命令获取 MySQL 如何执行 SELECT 语句的信息,包括在 SELECT 语句执行过程中表如何连接和连接的顺序,比如我们想计算 2006 年所有公司的销售额,需要关联 sales 表和 company 表,并且对 profit 字段做求和( sum )操作,相应 SQL 的执行计划如下: mysql> explain select sum(profit) from sales a,company b where a

select-SQL分组太多查询效率十分低,怎么改才能提高效率?求大神指教

问题描述 SQL分组太多查询效率十分低,怎么改才能提高效率?求大神指教 select BUSCOMPANYNAME, LINENAME, BUSFREQUENCYTYPE,sum(VOUCHERPASSENGERSNUM) VOUCHERPASSENGERSNUM ,sum(MILEAGE) MILEAGE, sum(SEATQUANTITY) SEATQUANTITY, count(id) carCount, sum(VOUCHERTURNOVER) VOUCHERTURNOVER, sum(

SQL Server查询效率优化

查询效率分析: 子查询为确保消除重复值,必须为外部查询的每个结果都处理嵌套查询.在这种情况下可以考虑用联接查询来取代. 如果要用子查询,那就用EXISTS替代IN.用NOT EXISTS替代NOT IN.因为EXISTS引入的子查询只是测试是否存在符合子查询中指定条件的行,效率较高.无论在哪种情况下,NOT IN都是最低效的.因为它对子查询中的表执行了一个全表遍历. 建立合理的索引,避免扫描多余数据,避免表扫描! 几百万条数据,照样几十毫秒完成查询. 机器情况 p4: 2.4 内存: 1 G o

提高SQL的查询效率

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引.   2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:        1 select id from t where num is null   可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:           1 select id from t where num=0   3.应尽量避免在