线上系统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全部杀掉,就成功改完了,接下来就是排查整个数据库的字符集和排序规则,空闲的时候刷成一致。

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

相关推荐
haixingtianxinghai12 小时前
Redis的定期删除和惰性删除
数据库·redis·缓存
资深web全栈开发12 小时前
PostgreSQL Schema 最佳实践:架构师的命名与组织艺术
数据库·postgresql
麦聪聊数据13 小时前
利用实时数据管道与 SQL2API 重构企业自动化审计架构
数据库·sql·低代码
麦聪聊数据13 小时前
重构开放生态:利用 QuickAPI 跨越遗留系统与敏捷交付的工程实践
数据库·sql·低代码·restful
百结21418 小时前
Mysql数据库操作
数据库·mysql·oracle
keep one's resolveY18 小时前
时区问题解决
数据库
Leinwin18 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
qq_4176950518 小时前
机器学习与人工智能
jvm·数据库·python
漫随流水18 小时前
旅游推荐系统(view.py)
前端·数据库·python·旅游
ego.iblacat18 小时前
MySQL 服务基础
数据库·mysql