前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MYSQL一个优化的过程

MYSQL一个优化的过程

作者头像
用户5640963
发布2019-07-25 15:16:48
3070
发布2019-07-25 15:16:48
举报
文章被收录于专栏:卯金刀GG卯金刀GG

背景:优化一个20数据的表查询 ###优化前 EXPLAIN SELECT DISTINCT ect.contract_no AS contractCode, ect.contract_name AS contractName, NULL AS supplierId, ect.b_name AS supplierName FROM `eva_test` ect LEFT JOIN td_outline_test toa ON ect.`contract_no` = toa.`contract_no` WHERE toa.`contract_no` IS ORDER BY ect.`id`;

###优化后 EXPLAIN SELECT ect.contract_no AS contractCode, ect.contract_name AS contractName, NULL AS supplierId, ect.b_name AS supplierName FROM `eva_test` ect LEFT JOIN td_outline_test toa ON ect.`contract_no` = toa.`contract_no` WHERE toa.`contract_no` IS NULL ORDER BY ect.`id`; ###查询合同编号的数量大于1的合同

###使用EXISTS ,在使用优化后 EXPLAIN SELECT ect_out.contract_no AS contractCode, ect_out.contract_name AS contractName, NULL AS supplierId, ect_out.b_name AS supplierName FROM eva_test ect_out WHERE NOT EXISTS (SELECT toa.`contract_no` FROM td_outline_test toa WHERE ect_out.`contract_no` = toa.`contract_no`) ORDER BY ect_out.`id`; ###使用eva_test.contract_no字段的索引,不推荐使用 SELECT ect_out.contract_no AS contractCode, ect_out.contract_name AS contractName, NULL AS supplierId, ect_out.b_name AS supplierName FROM eva_test ect_out WHERE ect_out.`contract_no` NOT IN (SELECT DISTINCT ect.contract_no FROM `eva_test` ect LEFT JOIN td_outline_test toa ON ect.`contract_no` = toa.`contract_no` WHERE toa.`contract_no` IS NOT NULL) ; ####辅助查询 SELECT contract_no, COUNT(contract_no) AS COUNT FROM eva_test GROUP BY contract_no HAVING COUNT(contract_no) > 1 ORDER BY countDESC;

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档