MySQL中NOT EXISTS优化案例教程
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇内容介绍了"MySQL中NOT EXISTS优化案例教程"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2025年01月23日MySQL中NOT EXISTS优化案例教程
本篇内容介绍了"MySQL中NOT EXISTS优化案例教程"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一、原始语句:
SELECT * FROM dcf_account.t_posting_transaction t1 WHERE NOT EXISTS ( SELECT * FROM dcf_loan.t_account_posting_detail t2 WHERE t1.track_no = t2.posting_num );
二、关于优化改语句的几点思考:
对于原始语句,因为是NOT EXISTS判断,所以子查询中没有必要SELECT ,只需SELECT ID甚至是SELECT 1都可以。另外,鉴于MySQL子查询算法性能较差,考虑改写成对应的JOIN方式,因为这里是NOT EXIST判断,所以改写时有一定技巧,即可使用左连接,然后过滤出未能成功连接的记录。还有,原始语句最外层的查询也是SELECT 至于这个是否有必要应当依据具体业务,尽量在满足业务要求的条件下取尽可能少的字段。最后,即时做了上述优化,若在连接条件上没有合适的索引SQL性能仍然会非常差(特别是在表的数据量巨大的时候),所以考虑在连接的条件列t1.track_no 和 t2.posting_num上分别创建索引。
三、最终的优化结果如下 :
语句由原来的进一个小时的运行时间减少到1秒内。
SELECT t1.id FROM dcf_account.t_posting_transaction t1 LEFT JOIN dcf_loan.t_account_posting_detail t2 ON t1.track_no = t2.posting_num WHERE t2.id IS NULL;
"MySQL中NOT EXISTS优化案例教程"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
语句
案例
原始
条件
查询
教程
必要
业务
内容
性能
更多
知识
索引
合适
实用
巨大
较差
成功
学有所成
接下来
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发转软件销售
淄博创盈软件开发58
软件开发最新技术共享
舵手数据库出错
用什么软件恢复数据库
金坛区网络安全论坛
徐州智能化软件开发供应商
校园网络安全知识讲座主持词
鲁冰花伴奏软件开发
研究生管理系统数据库设计
啊仕足球观数据库
数据库中添加字段的方法有哪些
华为网络技术人员上门服务
网络安全及发展趋势
家庭网络安全管理办法
网络安全管理学习心得
方舟怎么转非官方服务器
企业管理软件开发费用标准
湖南民主评议软件开发电话
网络安全法 央行
太仓软件开发开发商
网络安全知识视频观后感
广州商侣APP软件开发公司
宜宾网络技术调试
软件开发 技术选型原则
阿里云服务器可以远程吗
南通app软件开发报价
应用服务器做什么用的
数据库安全函数推出
您的网络安全存在安全隐患