速度可能提高1000的 EXISTS 最高级的用法, 我也是无意中用到的, 跟兄弟们分享一下

cncharles cncharles 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我要有一个非常复杂的视图,数据非常大, 其中有三个重要字段。批号:PN, 结算日期: BalanceDate, 出货日期: ShipDate. 现在要在基于这个视图上统计, 以出货日期准指定时间段里与结算日期重复的批号.
刚才开始以这个视图
SELECT * FROM vwFinPNCostShipDate B WHERE BalanceDate<'2007-04-01' AND EXISTS(
SELECT 1 FROM vwFinPNCostShipDate WHERE PN=B.PN AND ShipDate BETWEEN '2007-04-01' AND '2008-03-31')


N分钟都没有结果,一不小心写成了这样

SELECT * FROM vwFinPNCostShipDate B WHERE BalanceDate<'2007-04-01' AND EXISTS(
SELECT 1 WHERE PN=B.PN AND ShipDate BETWEEN '2007-04-01' AND '2008-03-31')


注意 EXISTS 中没有 FROM 马上就出结果了, 兄弟们遇到过没有, 也就是说EXISTS 自身引用可以不用FROM.
...全文

相关推荐

MySQL中exists关键字和in的区别有那些? SQL语句优化有那些方法? 查询速度很慢应该怎么办?

一、exists和in有何区别如下?          exists使用循环的方式,由outer表的记录数决定循环的次数,对于exists的影响最大,所以,外表的记录越小,子查询结果集较大时适用于exists; in 先执行子查询,子查询的结果返回去重之后,再执行主查询,所以,子查询的返回结果越少,越适合使用in关键字。 二、SQL语句的优化方式有那些?         1. 尽量避免非操作符的使用。在索引列上用NOT,等非操作符会导致索引失效,数据库管理系统是不会使用索引的,可以将查询语句转换为可以使用索引的查询。         2. 避免对查询列的操作。任何对查询列的操作都有可能导致全表

weixin_38502290

mysql优化_提高百万条数据的查询速度

实用的技术

bailong42

处理百万级以上的数据提高查询速度的方法

处理百万级以上的数据提高查询速度的方法

qq_24744475

详解SQL EXISTS 运算符

EXISTS 运算符 EXISTS 运算符用于判断查询子句是否有记录,如果有一条或多条记录存在返回 True,否则返回 False。 SQL EXISTS 语法 SELECT column_name(s) FROM table_name WHERE EXISTS (SELECT column_name FROM table_name WHERE condition); 演示数据库 在本教程中,我们将使用 RUNOOB 样本数据库。 下面是选自 “Websites” 表的数据: +----+--------------+---------------------------+-------+

weixin_38526225

提高SQL处理查询上百万条数据库的速度

提高SQL处理查询上百万条数据库的速度

liangweiqing00
评论 15
收藏 已收藏
分享
返回顶部
cncharles
疑难问题 22,298 成员 121,727 内容