SQL Server 使用join all优化 or 查询速度
作者:苗启源 时间:2024-01-26 09:11:37
比如:,master,test, 表示 该用户为 test 的下级代码,test登录后可以看到 test名下的业务和所有下级代理的业务。相关表的结构如下:
user表 大约10万条记录
|-uid-|-user-|----site------|
| 1 | test | ,master, |
| 2 | user | ,master,test,|
product表 大约30万条记录
|-pid-|-product-|-puser-|
| 1 | order01 | test |
| 2 | order02 | user |
| 3 | order03 | user |
优化前的SQL语句如下:
select * from product as p left join user as u on p.puser=u.user where user='test' or site like '%,test,%'
不使用 or 单独查询时,都不超过100毫秒,排除索引的问题。既然单个没问题,两种结果不存在重复记录,可以考虑 join all 优化。
优化后的语句如下:
select * from product where pid in (
select pid from product where user='test' join all (
select pid from product as p left join user as u on p.puser=u.user where site like '%,test,%'
)
)
用户A名下共有4000+个业务,优化前 优化前11359毫秒,优化后621毫秒
用户B名下共有12个业务,优化前 优化前10359毫秒,优化后78毫秒
来源:http://www.miaoqiyuan.cn/p/sql-join-all
标签:SQL,Server,join,all
0
投稿
猜你喜欢
Javascript typeof与instanceof的区别
2024-06-07 15:53:47
python的变量和简单数字类型详解
2021-01-10 15:34:40
在VSCode中搭建Python开发环境并进行调试
2021-09-20 23:19:13
Go语言包和包管理详解
2023-07-21 15:51:03
Python os库常用操作代码汇总
2021-04-17 04:07:51
pytorch常用函数定义及resnet模型修改实例
2022-09-18 08:19:19
在Laravel 中实现是否关注的示例
2023-11-14 15:22:57
Python实现的删除重复文件或图片功能示例【去重】
2023-12-25 00:49:07
Python中的列表知识点汇总
2021-06-01 05:00:50
JavaScript实现的反序列化json字符串操作示例
2024-04-10 10:46:01
解决pycharm 格式报错tabs和space不一致问题
2022-10-12 11:36:12
深入理解python中sort()与sorted()的区别
2021-08-17 11:46:49
python 虚拟环境的创建与使用方法
2022-11-09 18:21:50
Go语言算法之寻找数组第二大元素的方法
2023-06-24 16:19:03
Python Opencv轮廓常用操作代码实例解析
2023-01-03 08:46:59
Vue+Express实现登录状态权限验证的示例代码
2024-05-13 09:11:49
MySQL数据库的主从同步配置与读写分离
2024-01-20 17:50:58
Go语言开发kube-scheduler整体架构深度剖析
2024-04-28 09:17:20
python目录操作之python遍历文件夹后将结果存储为xml
2023-09-23 13:04:13
理解和使用Oracle 8i分析工具LogMiner
2010-07-16 13:22:00