mysql不使用自增_自增ID有什么坏处?什么样的场景下不使用自增ID?
大家好,我是IT修真院上海分院第3期學(xué)員,一枚正直善良的java程序員,今天給大家分享一下,修真院java任務(wù)中的一個知識點:自增ID有什么壞處?什么樣的場景下不使用自增ID?
1.背景
對于MySQL中表的主鍵一般采用id字段自增的形式,不過自增id存在一些問題,在一些場景下是不推薦使用自增ID的。
2.什么是自增ID
自增ID是在設(shè)計表時將id字段的值設(shè)置為自增的形式,這樣當插入一行數(shù)據(jù)時無需指定id會自動根據(jù)前一字段的ID值+1進行填充。在MySQL數(shù)據(jù)庫中,可通過sql語句AUTO_INCREMENT來對特定的字段啟用自增賦值 使用自增ID作為主鍵,能夠保證字段的原子性.
3.自增ID有什么好處
在添加一行時無需對自增id列賦值,在添加一行數(shù)據(jù)時可留空,會自動根據(jù)前一字段id值+1填充
單個表中能夠唯一標識該字段,保證原子性。在單個表中使用自增ID能夠保證主鍵不重復(fù)
4.自增ID有什么壞處
不存在連續(xù)性,也就是說若表中存有3行數(shù)據(jù),ID字段為1,2,3 那么當刪除字段2時就變?yōu)?,3,不具有連續(xù)性
合并表會出現(xiàn)ID重復(fù)的情況,上面說個使用自增ID能夠在單個表中保證ID字段唯一,但兩個表何為1個表,時不具有這種性質(zhì)的。
5.什么場景下不使用自增ID
正是因為自增ID的缺點也就是無法在多個表中,或者多個數(shù)據(jù)庫中保持ID主鍵唯一不重復(fù),所以若是使用分布式數(shù)據(jù)庫以及數(shù)據(jù)合并的情況下時不能使用自增ID的。
若是能夠有其他的字段能作為主鍵保證唯一性,無需使用自增ID
6.自增ID的替代者UUI
UUID含義是通用唯一識別碼 (Universally Unique Identifier),指在一臺機器上生成的數(shù)字,它保證對在同一時空中的所有機器都是唯一的。通常平臺會提供生成的API。換句話說能夠在一定的范圍內(nèi)保證主鍵id的唯一性。
7.UUID存在的目的
UUID的目的,是讓分布式系統(tǒng)中的所有元素,都能有唯一的辨識信息,而不需要通過中央控制端來做辨識信息的指定。如此一來,每個人都可以創(chuàng)建不與其它人沖突的UUID。在這樣的情況下,就不需考慮數(shù)據(jù)庫創(chuàng)建時的名稱重復(fù)問題。也就完美解決的自增ID的缺點。
今天的分享就到這里啦,歡迎大家點贊、轉(zhuǎn)發(fā)、留言、拍磚~
技能樹.IT修真院“我們相信人人都可以成為一個工程師,現(xiàn)在開始,找個師兄,帶你入門,掌控自己學(xué)習(xí)的節(jié)奏,學(xué)習(xí)的路上不再迷茫”。
這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學(xué)習(xí)路線,學(xué)習(xí)透明化,成長可見化,師兄1對1免費指導(dǎo)。快來與我一起學(xué)習(xí)吧~我的邀請碼:16318412,或者你可以直接點擊此鏈接:http://www.jnshu.com/login/1/16318412
作者:Himly
PPT地址:PPT
自增ID有什么壞處?什么樣的場景下不使用自增ID?_騰訊視頻
總結(jié)
以上是生活随笔為你收集整理的mysql不使用自增_自增ID有什么坏处?什么样的场景下不使用自增ID?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python fun_一道神奇的Pyth
- 下一篇: unity 继承了 获取_获取继承链