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

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

相关推荐
等....8 小时前
Minio使用
数据库
win x9 小时前
Redis 使用~如何在Java中连接使用redis
java·数据库·redis
迷枫71210 小时前
DM8 数据库安装实战:从零搭建达梦数据库环境(附全套工具链接)
数据库
XDHCOM11 小时前
PostgreSQL 25001: active_sql_transaction 报错原因分析,故障修复步骤详解,远程处理解决方案
数据库·sql·postgresql
卤炖阑尾炎11 小时前
PostgreSQL 日常运维全指南:从基础操作到备份恢复
运维·数据库·postgresql
daad77712 小时前
wifi_note
运维·服务器·数据库
计算机毕设vx_bysj686912 小时前
【免费领源码】77196基于java的手机银行app管理系统的设计与实现 计算机毕业设计项目推荐上万套实战教程JAVA,node.js,C++、python、大屏数据可视化
java·mysql·智能手机·课程设计
吴声子夜歌13 小时前
ES6——正则的扩展详解
前端·mysql·es6
xixingzhe213 小时前
Mysql统计空间增量
数据库·mysql
程序员萌萌13 小时前
Java之mysql实战讲解(三):聚簇索引与非聚簇索引
java·mysql·聚簇索引