关于mysql关联查询,特别慢的坑
mysql 查询 关于 关联 特别
2023-09-11 14:15:05 时间
from: https://zhuanlan.zhihu.com/p/166629530
最近入职了一个新公司,接收了一个代码写得很烂的项目.花了两天看完代码,来了个需求,需要做一个统计,要做几个表的关联查询,
sql语句非常简单,如下(由于涉密原因,只有最简单的):
查询语句是我手动停止的,查看manifest表数据,猛然发现才不到4万条
第一反应是索引的问题,explain看一下
这个时候大多数人想到的是去加索引,我也不例外.
就在我加索引的过程中,我反应过来一个问题,就这点数据,哪怕是没有索引,也不可能会慢到如此丧心病狂的地步.所以果断排除了索引问题.
查询语句中唯一的判断是"a.bill_no=b.bill_no",那么问题一定出在这里.
查看两个表的编码:
好啦,问题一目了然了...
两个字段不同的编码.造成了进行关联查询时,两个字段的判断及其慢.解决方法通常有两种:
1.修改两个表的编码,保持一致.但是这会更改整个表的结构,在不能确定有无其他影响的情况下,建议不要使用.
2.使用转换函数,降编码统一
CONVERT(expr USING transcoding_name)
使用时间立马就有效果
索引生效了
愿意与大家一起踩坑!
相关文章
- 到底该不该使用存储过程 MySQL查询性能优化一则
- 基于CentOS的MySQL学习补充四--使用Shell批量从CSV文件里插入数据到数据表
- MYSQL 查询重复数据
- MySQL基本数据库管理命令
- mysql数据库优化之表的设计和慢查询定位
- [转]【MySQL】关于时间的查询,比如本月,本年,本季度
- 【MySQL进阶-09】深入理解mysql执行的底层机制
- mysql空格问题引起查询问题
- 《SQL初学者指南(第2版)》——1.2 Microsoft SQL Server、MySQL和Oracle
- mysql 相同月份数据求和 然后再列出不同月份
- mysql 递归查询父节点 和子节点
- MySQL EXPLAIN 命令: 查看查询执行计划
- MySQL详解(25)-----------MySQL性能优化
- MySQL-数据库多表关联查询太慢,如何进行SQL语句优化
- Linux下如何彻底删除MySQL
- 从项目上一个子查询扩展学习开来:mysql的查询、子查询及连接查询
- MySQL慢查询(二) - pt-query-digest详解慢查询日志 pt-query-digest 慢日志分析
- Linux(centos)下mysql编译安装教程
- 一步一步跟我学习hadoop(7)----hadoop连接mysql数据库运行数据读写数据库操作
- MySql折腾小记一:导数据出错,查询超慢
- spring boot MySQL Public Key Retrieval is not allowed
- MySQL多表关联查询效率高点还是多次单表查询效率高,为什么?
- mysql数据库全文多库多表查找,查询所有数据库中包含指定字符的数据
- MySQL读写分离
- mysql 中关于慢查询日志
- Linux安装Mysql server镜像安装失败 警告:mysql-community-devel-8.0.31-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature