加入收藏 | 设为首页 | 会员中心 | 我要投稿 烟台站长网 (https://www.0535zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

mysql 临时表 加索引_MySQL漏加索引

发布时间:2023-06-13 09:01:46 所属栏目:MsSql教程 来源:网络
导读: 犯了傻逼的错误,感觉自己真该!
NOT IN优化成NOTEXISTS后性能提升了10%,部署新服务器数据量积累到一定数量后发现总有问题:80w数据量的大表(cookie_clean_t)关联不到1w数据量的临时表(co

犯了傻逼的错误,感觉自己真该!

NOT IN优化成NOTEXISTS后性能提升了10%,部署新服务器数据量积累到一定数量后发现总有问题:80w数据量的大表(cookie_clean_t)关联不到1w数据量的临时表(cookie_short_run_t)提供的接口很大一部分请求打印的耗时达到4s甚至5s以上,请求设置的3s超时很被动了!当时第一反应也是查看索引,看了几遍都确认索引创建正常,最后百度需求解决方案优化NOTEXISTSmssql 临时表,当时找到的是LEFT JOIN设计,最后测试发现性能更差。

二次优化的SQL语句如下:

EXPLAIN

SELECT * FROM cookie_clean_t cc

LEFT JOIN cookie_short_run_t csr ON cc.uuid=csr.uuid

WHERE cc.state=0 AND csr.uuid IS NULL

ORDER BY cc.uuid DESC LIMIT 50

EXPLAIN

SELECT * FROM cookie_clean_t cc

WHERE NOT EXISTS(SELECT csr.uuid FROM cookie_short_run_t csr WHERE csr.uuid=cc.uuid)

AND cc.state=0

ORDER BY cc.uuid DESC LIMIT 50

由于表关联处理的业务逻辑比较多,当时还考虑到临时表批量更新大表状态影响了优化的SQL语句,排除了所有可能,最后再次确认索引发现cookie_short_run_t的字段uuid没有创建索引,加上后性能提升55%。

又是为自己的大意买单,猪脑袋真活该!

(编辑:烟台站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章