支持分布式数据库同步操作的一个设计点:主键问题
生活随笔
收集整理的這篇文章主要介紹了
支持分布式数据库同步操作的一个设计点:主键问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
支持分布式數(shù)據(jù)庫同步操作之表主鍵設(shè)計(jì)
如果應(yīng)用需要進(jìn)行異地部署,并且要進(jìn)行同步復(fù)制等操作,那么對數(shù)據(jù)庫進(jìn)行設(shè)計(jì)時,要考慮數(shù)據(jù)庫的同步和沖突問題。
這和讀寫分離的主從數(shù)據(jù)庫同步稍有不同。因?yàn)椴粫卸鄠€寫得入口。
一般很多人在設(shè)計(jì)表結(jié)構(gòu)時,喜歡使用自增長的ID為主鍵,這在異地多應(yīng)用部署營運(yùn)的情況下,對導(dǎo)致主鍵的重復(fù)沖突。對數(shù)據(jù)的一致性造成影響。
解決辦法:
1. 如果表的結(jié)構(gòu)已經(jīng)是ID自增長的類型了,則對其值的范圍進(jìn)行劃分,比如一個地域的數(shù)據(jù)庫中,id值要在69999999999一下,而另一個id值要在700000000000以上,則可以避免沖突出現(xiàn)。
2. 采用其他計(jì)算方式產(chǎn)生不重復(fù)的主鍵值。這有很多方法,最簡單的是使用uuid,或者自定義一個算法。
3. 其它辦法,大家自己想想。
總結(jié)
以上是生活随笔為你收集整理的支持分布式数据库同步操作的一个设计点:主键问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一级能耗和三级能耗差别有多大
- 下一篇: MySQL explain结果详解