支持分布式数据库同步操作之表主键设计

如果应用需要进行异地部署,并且要进行同步复制等操作,那么对数据库进行设计时,要考虑数据库的同步和冲突问题。
这和读写分离的主从数据库同步稍有不同。因为不会有多个写得入口。

一般很多人在设计表结构时,喜欢使用自增长的ID为主键,这在异地多应用部署营运的情况下,对导致主键的重复冲突。对数据的一致性造成影响。

解决办法:
1. 如果表的结构已经是ID自增长的类型了,则对其值的范围进行划分,比如一个地域的数据库中,id值要在69999999999一下,而另一个id值要在700000000000以上,则可以避免冲突出现。
2. 采用其他计算方式产生不重复的主键值。这有很多方法,最简单的是使用uuid,或者自定义一个算法。
3. 其它办法,大家自己想想。

支持分布式数据库同步操作的一个设计点:主键问题相关推荐

  1. hbase 二进制数据写入_分布式数据库HBase的架构设计详解(有彩蛋)

    原标题:分布式数据库HBase的架构设计详解(有彩蛋) 本文根据DBAplus社群第99期线上分享整理而成,文末还有好书送哦~ 讲师介绍 陈鸿威 云财经大数据CTO 曾任百度高级工程师,现主持设计开发 ...

  2. 新增一个主键自增长_第17期:索引设计(主键设计)

    表的主键指的针对一张表中的一列或者多列,其结果必须能标识表中每行记录的唯一性.InnoDB 表是索引组织表,主键既是数据也是索引.主键的设计原则1. 对空间占用要小上一篇我们介绍过 InnoDB 主键 ...

  3. mybatisplus新增返回主键_第17期:索引设计(主键设计)

    表的主键指的针对一张表中的一列或者多列,其结果必须能标识表中每行记录的唯一性.InnoDB 表是索引组织表,主键既是数据也是索引. 主键的设计原则 1. 对空间占用要小上一篇我们介绍过 InnoDB ...

  4. 数据库的几个概念:主键,外键,索引,唯一索引

    主键: 主键是数据表的唯一索引,比如学生表里有学号和姓名,姓名可能有重名的,但学号确是唯一的,你要从学生表中搜索一条纪录如查找一个人,就只能根据学号去查找,这才能找出唯一的一个,这就是主键;如:id ...

  5. java获取表主外键_通过 jdbc 分析数据库中的表结构和主键外键

    文章转自:http://ivan4126.blog.163.com/blog/static/20949109220137753214811/ 在某项目中用到了 hibernate ,大家都知道 hib ...

  6. dm数据库无法用序列自动生成主键,无法解析的成员访问表达式【SEQ_STU_CON_NEXTVAL】

    报错信息: 无法解析的成员访问表达式[SEQ_STU_CON_NEXTVAL] select SEQ_STU_CON_NEXTVAL 这种错的解决方案,在dm数据库中创建一个序列叫SEQ_STU_CO ...

  7. 数据库 MySQL 如何设置表的主键自增起始值

    文章目录 表已有数据,truncate 之后再设置 auto_increment,可行 表已有数据,delete from 之后再设置 auto_increment,可行 主键自增起始值重置 查询表名 ...

  8. bigint如何自增_SQ数据库中怎样设置自增主键?

    展开全部 通过int或bigint设置. 自增列的类型应为int或bigint型,可以设置起始和每32313133353236313431303231363533e59b9ee7ad943133343 ...

  9. hibernate saveorupdate mysql_Mysql数据库 hibernate保存数据时,Mysql主键需设定自增,否则报错_MySQL...

    Hibernate bitsCN.com 问题的原因很简单,可能有的时候一下想不起来.MARK下. 报错信息如下: org.springframework.jdbc.UncategorizedSQLE ...

最新文章

  1. java for循环迭代_JAVA中的for-each循环与迭代
  2. WARN [com.mchange.v2.async.ThreadPoolAsynchronousRunner] - com.mchange.v2.as
  3. VMware Workstation中Linux虚拟机安装VMware-Tools
  4. 设置文本区域大小_数据验证基本设置技巧
  5. 确定对象在使用前已经被初始化
  6. su root 后还是不能使用useradd ,useradd 等命令
  7. 多核技术对计算机技术的影响,计算机新技术——多核技术.doc
  8. cobbler实现自动安装
  9. oracle open 101,解决oracle数据库ORA-65101 container database set up incorrectly
  10. C语言中各小写字母对应的ascal码值,asc2(ascall码对照表)
  11. MQ消息队列常用命令
  12. curl: (67) Access denied: 530的可能原因
  13. PS证件照排版计算器
  14. VBA多条EXCEL记录写入到WORD文档中
  15. 全国高校人工智能选修课该怎么上?附赠全套PPT
  16. 微信张小龙实锤,到底谁在监控你的隐私?
  17. StringTokenizer使用讲解
  18. 未能导入activex控件,请确保它正确注册的完美解决方案
  19. 教你彻底解决Apple ID密码重置问题
  20. Gym - 101128H - Sheldon Numbers

热门文章

  1. hadoop配置2.6.1 centos7
  2. LVM逻辑卷的管理--创建LVM、扩容,快照实战
  3. 战痕————道具系统介绍
  4. iomem—I/O映射方式的I/O端口和内存映射方式的I/O端口
  5. 设置硬盘休眠linux,linux笔记本设置休眠
  6. mysql分表那些事儿
  7. Javascript 解析,格式化日期
  8. hiberanate 主键查询慢_mysql查询优化,1万条数据居然要30秒
  9. php查询oracle大量数据,Oracle 百万行数据查询优化
  10. 5 拦截器拦截请求路由_手写简易版axios拦截器,实现微信小程序wx.request的封装与拦截...