线上系统mysql数据库突然sql执行不出来记录

今天中午1点多休息的时候突然用户反馈页面出不来结果,连忙排查了服务器和数据库,发现服务器cpu、内存都正常,数据库阻塞了一大堆sql,那就是sql的事了,单独取出来一个分析,过程就不再赘述了,大致就是查看执行计划发现有索引的字段执行计划中显示 Using join buffer (Block Nested Loop)**,**说明索引失效,sql大概是这样:

复制代码
JOIN pur_purchase_order_detail F ON C.purchase_order_detail_id = F.id 
	AND C.purchase_order_id = F.purchase_order_id
	JOIN pur_purchase_order G ON C.purchase_order_id = G.id

1.先检查了表的索引,都在

2.后来发现俩表的字符集不一样,一个是 utf8mb4 一个是 utf8 ,然后看了下排序规则,发现排序规则也不一样

问题找到了,那就好办了

1.直接 alter

  1. 新建一个字符集和排序规则一样的表,把表数据整到新表里,然后rename

执行的过程中把所有相关的sql全部杀掉,就成功改完了,接下来就是排查整个数据库的字符集和排序规则,空闲的时候刷成一致。

但是还有一个问题想请大神们解答一下,为啥字符集一直就不一样,之前也好用,突然就不好用了?

相关推荐
斑马1397 小时前
Linux软件编程学习笔记(十三)——数据库
数据库·oracle
初願致夕霞7 小时前
MySQL_索引
数据库·mysql
十六年开源服务商8 小时前
2026网站备份方案完整指南
数据库·oracle
一只小李郁vickie8 小时前
mysql 开启压缩传输3402条数据2.1秒压缩到毫秒级
数据库·mysql
张继雁9 小时前
张继雁 个人技术简介|磨削加工过滤方向
大数据·数据库·论文阅读·人工智能·机器学习·创业创新·业界资讯
IvorySQL9 小时前
PostgreSQL 日报|不重启动态修改 shared_buffers(9 月 8 日)
数据库·postgresql
这个DBA有点耶9 小时前
2026年做数据库开发,国产数据库已经是绕不开的选项了
数据库·dba·敏捷开发
前端兰博9 小时前
04-数据库-MySQL
后端·mysql
这个DBA有点耶9 小时前
COUNT慢不是因为用了*,是这5个原因——1000万行数据实测+执行计划深度解析
数据库·mysql·算法
老周聊架构10 小时前
Ontology:Palantir 架构真正的核心,不是数据库也不是知识图谱
数据库·架构·知识图谱