教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

DDL中如何選擇主鍵id的生成策略?

更新時(shí)間:2023年01月30日17時(shí)20分 來(lái)源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

MyBatisPlus中DML的相關(guān)新增成功后,主鍵ID是一個(gè)很長(zhǎng)串的內(nèi)容,我們更想要的是按照數(shù)據(jù)庫(kù)表字段進(jìn)行自增長(zhǎng),在MP中都提供了哪些主鍵生成策略,我們?cè)撊绾芜M(jìn)行選擇?

NONE: 不設(shè)置id生成策略,MP不自動(dòng)生成,約等于INPUT,所以這兩種方式都需要用戶(hù)手動(dòng)設(shè)置,但是手動(dòng)設(shè)置第一個(gè)問(wèn)題是容易出現(xiàn)相同的ID造成主鍵沖突,為了保證主鍵不沖突就需要做很多判定,實(shí)現(xiàn)起來(lái)比較復(fù)雜。

AUTO:數(shù)據(jù)庫(kù)ID自增,這種策略適合在數(shù)據(jù)庫(kù)服務(wù)器只有1臺(tái)的情況下使用,不可作為分布式ID使用ASSIGN_UUID:可以在分布式的情況下使用,而且能夠保證唯一,但是生成的主鍵是32位的字符串,長(zhǎng)度過(guò)長(zhǎng)占用空間而且還不能排序,查詢(xún)性能也慢。

ASSIGN_ID:可以在分布式的情況下使用,生成的是Long類(lèi)型的數(shù)字,可以排序性能也高,但是生成的策略和服務(wù)器時(shí)間有關(guān),如果修改了系統(tǒng)時(shí)間就有可能導(dǎo)致出現(xiàn)重復(fù)主鍵。

綜上所述,每一種主鍵策略都有自己的優(yōu)缺點(diǎn),根據(jù)自己項(xiàng)目業(yè)務(wù)的實(shí)際情況來(lái)選擇使用才是最明智的選擇。

0 分享到:
和我們?cè)诰€(xiàn)交談!