MySQL中NOT EXISTS优化案例教程
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本篇内容介绍了"MySQL中NOT EXISTS优化案例教程"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
数字化对网络安全的贡献
强化网络安全观
5g网络技术员
服务器主板卡53
阐述目前我国网络安全的现状
微信后台服务器故障
服务器网站怎么安全
jgi数据库怎样使用
微信网络安全
linux服务器防护书籍
17软考数据库下午试题
网络安全风险评估工作报告
常熟口碑好的网络技术诚信经营
数据库 引擎类型
西北农林科技大学互联网加
怀旧服服务器一天能刷多少钱
江苏挑选软件开发项目信息
青少年网络安全与技术
软件开发中的状态迁移
江苏专业网络技术服务五星服务
多个用户同时修改数据库数据
重庆电脑软件开发价格
福建时尚美网络技术公司
数据库在互联网系统重要吗
丽水网络安全大数据余辉
自己创造的网络安全感
贵阳大数据库最新消息
数据库文件安全属性
苏州生鲜软件开发
江苏挑选软件开发项目信息