首页 > 数据库 >mysql双主架构解决自增冲突

mysql双主架构解决自增冲突

时间:2022-11-01 22:11:18浏览次数:182  
标签:自增 auto offset 双主 插入 increment mysql 服务器 ID

Mysql双主自增长冲突处理   多主互备和主从复制有一些区别,因为多主中都可以对服务器有写权限,所以设计到自增长重复问题   出现的问题(多主自增长ID重复)  1:首先我们通过A,B的test表结构    2:掉A,在B上对数据表test(存在自增长ID)执行插入操作,返回插入ID为1  3:后停掉B,在A上对数据表test(存在自增长ID)执行插入操作,返回的插入ID也是1  4:然后 我们同时启动A,B,就会出现主键ID重复    解决方法:  我们只要保证两台服务器上插入的自增长数据不同就可以了  如:A查奇数ID,B插偶数ID,当然如果服务器多的话,你可以定义算法,只要不同就可以了    在这里我们在A,B上加入参数,以实现奇偶插入    A:my.cnf上加入参数    auto_increment_offset = 1  auto_increment_increment = 2  这样A的auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID了    B:my.cnf上加入参数    auto_increment_offset = 2  auto_increment_increment = 2  这样B的auto_increment字段产生的数值是:2, 4, 6, 8, …等偶数ID了    可以看出,你的auto_increment字段在不同的服务器之间绝对不会重复,所以Master-Master结构就没有任何问题了。 当 然,你还可以 使用3台,4台,或者N台服务器,只要保证auto_increment_increment = N 再设置一下auto_increment_offset为适当的初始值就可以了,那样,我们的MySQL可以同时有几十台主服务器,而不会出现自增长ID 重复。   转自:http://www.2cto.com/database/201307/231397.html

标签:自增,auto,offset,双主,插入,increment,mysql,服务器,ID
From: https://www.cnblogs.com/gered/p/16849358.html

相关文章

  • MySQL查询数据(多表查询)
    准备工作,新建名为students的数据,三张表分别是student,courses,stu_cou,并创建外键约束,级联删除更新,插入数据。/*创建数据库*/createdatabaseifnotEXISTSstudentscha......
  • MySQL基础语句
    DDL(DataDefinitionLanguage) DML(DataManipulateLanguage) DQL(DataQueryLanguage)聚合函数聚合函数作用于字段,而且NULL值不参与计算分组查询 具体......
  • MySql 最大建议行数 2000w,靠谱吗?
     1背景作为在后端圈开车的多年老司机,是不是经常听到过,“mysql单表最好不要超过2000w”,“单表超过2000w就要考虑数据迁移了”,“你这个表数据都马上要到2000w了,难怪查......
  • Mysql集群
    Mysql集群笔记概述我们在考虑MySQL数据库的高可用的架构时,主要要考虑如下几方面:如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机......
  • TYPE(3)—mysql执行计划(四十九)
    Simple:普通的sql查询,连接查询。Primary:union左边的表。Union:union和unionall都叫几个select,除了最左边的是primary,其他都是union。Unionresult:union去重临时表。Subquery:......
  • Extra(5)—mysql执行计划(五十一)
    前面说了有type,simple表示普通查询或者连接查询,primary代表union最左边的select,unionresult代表union查询的临时表去重,所以unionall没有去重功能,subquery代表in的子查询......
  • Select type&partitions (2)—mysql执行计划(四十八)
    前面说了explain的table是表名,显示在前面的代表驱动表,正常select会出现不同的id,但如果子查询本来是两个select,但被优化成连接查询,就会导致是相同的id,union查询会出现临时表,i......
  • key&key_len&ref&filtered(4)—mysql执行计划(五十)
    前面说了system是精确存储引擎和只存一条数据,const是主键和唯一索引才能达到的效率访问,ref是二级索引等值查询,或者联合索引全部等值,如果联合索引单个查询,则是index,ref_not是......
  • id,table列(1)—mysql执行计划(四十七)
    前面说了semi-join,这个是在where或者on语句后面,in里面,并且外层的条件必须用and与子查询连接,semi-join的作用就是,不管子查询有多少条数据返回,都不管,外层都只查询出来外层表数......
  • Semi-join使用条件,派生表优化 (3)—mysql基于规则优化(四十六)
    前面说了子查询里有no/any/all不能用limit,groupby,orderby等,他会被查询优化器优化掉,子查询可能会物化转成内连接semi-join查询,物化就是会吧子查询看做一个表,如果数据太大,超......