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

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

相关推荐
阿里云大数据AI技术6 小时前
Hologres AI Function 文本分类实战:从提示词设计到 KV-Cache 调优,全程 SQL 搞定
人工智能·sql
白帽小丑7 小时前
# 一次 MySQL DELETE 误操作的数据恢复尝试实录
数据库·mysql
Dxy12393102167 小时前
MySQL索引完整教程:创建、查看、修改、删除与日常管理
前端·javascript·mysql
Quincy_Freak9 小时前
信创内网数据规范实践:银河麒麟下SQLite本地数据安全管理方案
数据库·sqlite·arm·数据库管理·大数据分析·银河麒麟·aarch64
至乐活着10 小时前
MySQL索引底层原理与查询优化实战:从B+树到执行计划
mysql·b+树·查询优化·sql性能·索引原理
2601_9626838911 小时前
治理遗留系统中的“生肉 SQL”:一次用多模型协作优化慢查询的实战复盘
数据库·人工智能·sql
酱学编程12 小时前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
shushangyun_13 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
dexi.Chi 攻城狮13 小时前
SQL层次查询语法
经验分享·笔记·sql
华山令狐虫14 小时前
DBAPI AI 写 SQL:支持动态 SQL 与参数占位符,自然语言一键生成
数据库·人工智能·sql·dbapi