自增主鍵
自增ID是在設(shè)計(jì)表時(shí)將id字段的值設(shè)置為自增的形式,這樣當(dāng)插入一行數(shù)據(jù)時(shí)無(wú)需指定id會(huì)自動(dòng)根據(jù)前一字段的ID值+1進(jìn)行填充。在MySQL數(shù)據(jù)庫(kù)中,可通過(guò)sql語(yǔ)句AUTO_INCREMENT來(lái)對(duì)特定的字段啟用自增賦值 使用自增ID作為主鍵,能夠保證字段的原子性.
成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)公司、微信開(kāi)發(fā)、小程序制作、集團(tuán)成都定制網(wǎng)頁(yè)設(shè)計(jì)等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:邊坡防護(hù)網(wǎng)等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶的一致贊揚(yáng)!
優(yōu)點(diǎn)
數(shù)據(jù)庫(kù)自動(dòng)編號(hào),速度快,而且是增量增長(zhǎng),按順序存放,對(duì)于檢索非常有利;
數(shù)字型,占用空間小,易排序,在程序中傳遞也方便;
如果通過(guò)非系統(tǒng)增加記錄時(shí),可以不用指定該字段,不用擔(dān)心主鍵重復(fù)問(wèn)題。
缺點(diǎn)
因?yàn)樽詣?dòng)增長(zhǎng),在手動(dòng)要插入指定ID的記錄時(shí)會(huì)顯得麻煩,尤其是當(dāng)系統(tǒng)與其它系統(tǒng)集成時(shí),需要數(shù)據(jù)導(dǎo)入時(shí),很難保證原系統(tǒng)的ID不發(fā)生主鍵沖突(前提是老系統(tǒng)也是數(shù)字型的)。特別是在新系統(tǒng)上線時(shí),新舊系統(tǒng)并行存在,并且是異庫(kù)異構(gòu)的數(shù)據(jù)庫(kù)的情況下,需要雙向同步時(shí),自增主鍵將是你的噩夢(mèng);
在系統(tǒng)集成或割接時(shí),如果新舊系統(tǒng)主鍵不同是數(shù)字型就會(huì)導(dǎo)致修改主鍵數(shù)據(jù)類型,這也會(huì)導(dǎo)致其它有外鍵關(guān)聯(lián)的表的修改,后果同樣很?chē)?yán)重;
若系統(tǒng)也是數(shù)字型的,在導(dǎo)入時(shí),為了區(qū)分新老數(shù)據(jù),可能想在老數(shù)據(jù)主鍵前統(tǒng)一加一個(gè)字符標(biāo)識(shí)(例如“o”,old)來(lái)表示這是老數(shù)據(jù),那么自動(dòng)增長(zhǎng)的數(shù)字型又面臨一個(gè)挑戰(zhàn)。
UUID
UUID含義是通用唯一識(shí)別碼 (Universally Unique Identifier)uuid 項(xiàng)目應(yīng)用 www.1b23.com,指在一臺(tái)機(jī)器上生成的數(shù)字,它保證對(duì)在同一時(shí)空中的所有機(jī)器都是唯一的。通常平臺(tái)會(huì)提供生成的API。換句話說(shuō)能夠在一定的范圍內(nèi)保證主鍵id的唯一性。
優(yōu)點(diǎn)
出現(xiàn)數(shù)據(jù)拆分、合并存儲(chǔ)的時(shí)候,能達(dá)到全局的唯一性
缺點(diǎn)
影響插入速度, 并且造成硬盤(pán)使用率低
uuid之間比較大小相對(duì)數(shù)字慢不少, 影響查詢速度。
uuid占空間大, 如果你建的索引越多, 影響越嚴(yán)重