模擬自增ID提高資料庫移植性

2021-09-05 17:54:14 字數 417 閱讀 9709

在我的orm中,乙個最大的問題就是怎麼去模擬自增主鍵,因為orm中的主鍵是程式控制的。

1.select max(col) from table

這種方法肯定不行,一出現併發就完蛋了。如果在程式裡面做迴圈直到插入成功,那麼邏輯就會非常的煩。。

2.新增一張專門儲存主鍵的表,每次先更新再讀取。使用事務控制併發go

begin transaction

select @maxid = max_id from cassaba where category = @category

update cassaba set max_id = @maxid + 1 where category = @category

commit transaction

相信第二種方法是可行的。

reference:

資料庫ID自增優缺點?

優點 1.自增,趨勢自增,可作為聚集索引,提公升查詢效率 2.節省磁碟空間。500w資料,uuid佔5.4g,自增id佔2.5g.3.查詢,寫入效率高 查詢略優。寫入效率自增id是uuid的四倍。缺點 1.匯入舊資料時,可能會id重複,導致匯入失敗。2.分布式架構,多個mysql例項可能會導致id重...

資料庫自增id竟然被我用完了

事情的起因是這樣的 幾個月前做過乙個統計型別的job,上線之後小修小補了幾次一直執行的很平穩,就是有乙個缺點 慢。起初我一直以為是因為資料量過大導致的,每天早上六點準時開跑,一般要到下午一兩點才能跑完,其實現在想想這麼長時間的執行肯定是不合理的,而且本身業務的資料量也沒有大到那個地步,但是由於一直工...

mysql資料庫中自增ID不自增1的解決辦法

原鏈結 mysql資料自增id為2的解決辦法 1.檢視配置 show variables like increment 如上,如果auto increment increment和auto increment offset不為1,就需要重新設定一下這兩個值了。2.修改auto increment i...