MySQL中NOT EXISTS优化案例教程
发表于:2024-10-21 作者:千家信息网编辑
千家信息网最后更新 2024年10月21日,本篇内容介绍了"MySQL中NOT EXISTS优化案例教程"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2024年10月21日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安全错误
数据库的锁怎样保障安全
约基奇数据库
关于网络安全知识竞赛的新闻稿件
数学建模在软件开发上的应用
关系数据库中的二维表至少
ac-100数据库
天津电力应急软件开发厂家现货
web应用服务器软件
网络安全和信息化局怎么样
汇丰网上银行服务器异常
网络安全专业应届生招聘
哈尔滨打卡软件开发
贵州哪里有网络技术职业学校
数据库深入学习
成都市网络安全信息中心
小七手游链接服务器失败
沈阳新华互联网科技学校图片
安卓开发 怎么对已有数据库
网络安全三定表
销售软件开发服务账务处理
睿图安卓软件开发工作室
数据库技术的基础
恩施管理软件开发公司
信息网络安全专业的前景
明日都市最安全的服务器
简述防范网络安全应该注意什么
成都好伙伴网络技术有限公司
电视域名服务器dns是什么意思
企业对外直接投资数据库
一个网站对应多个服务器
数据库 赋值