MySQL唯一索引出现重复值
创始人
2025-05-29 11:37:52

碰巧看到GreatSQL社群推送的这篇文章《故障案例:MySQL唯一索引有重复值,官方却说This is not a bug》,给我们介绍了MySQL数据库中唯一索引和重复值相关的一个场景,值得学习借鉴。

一、问题

MySQL5.7.38主从架构,主节点唯一索引上(唯一索引不是主键)有重复值,全部从节点报1062,SQL线程状态异常,根据SQL线程报的binlog位置点,insert数据时有重复值,插入失败

二、原因

unique_checks=0时导致,在bug(106121)列表中官方解释的原因:该参数关闭,维护唯一索引时,不会进行物理读,只会进行内存读,来确保唯一索引的唯一性,即如果内存中有冲突数据就报1062,如果内存中没有冲突数据插入成功,不会进行IO来将唯一索引相关的数据页拉取到内存。

官方的回复"IMHO this is not a bug",我理解的意思"不要你觉得,我要我觉得,我就是这么玩的"。

三、故障解决方案

(1)临时解决方案

恢复主从:

    • 在从节点开启会话

    • set sql_log_bin=0

相关内容

热门资讯

桐昆股份股价涨5.02%,国投... 12月17日,桐昆股份涨5.02%,截至发稿,报15.05元/股,成交3.58亿元,换手率1.02%...
海光信息股价涨5.04%,华泰... 12月17日,海光信息涨5.04%,截至发稿,报207.71元/股,成交32.87亿元,换手率0.7...
广发证券股价涨5.05%,农银... 12月17日,广发证券涨5.05%,截至发稿,报22.25元/股,成交15.50亿元,换手率1.21...
胜宏科技股价涨5.04%,嘉合... 12月17日,胜宏科技涨5.04%,截至发稿,报301.55元/股,成交101.97亿元,换手率4....
胜宏科技股价涨5.04%,宝盈... 12月17日,胜宏科技涨5.04%,截至发稿,报301.55元/股,成交102.02亿元,换手率4....