訂單号生成規則?生成唯一訂單号是在設計系統時候經常會遇到的一個問題,生成唯一訂單号的方法有很多,為了适應不同的場景和性能,選擇的方法也會不一樣,有些複雜的系統會有多套這種唯一編碼生成方式,我來為大家科普一下關于訂單号生成規則?下面希望有你要的答案,我們一起來看看吧!
生成唯一訂單号是在設計系統時候經常會遇到的一個問題,生成唯一訂單号的方法有很多,為了适應不同的場景和性能,選擇的方法也會不一樣,有些複雜的系統會有多套這種唯一編碼生成方式。
利用數據庫自增序列利用數據庫自增序列,比如新建一張表,專門插入數據,獲取新增記錄的主鍵值,為了訂單号的可讀性,可以由年月日 時間戳 auto_increment值,這種方式能保證唯一性、遞增性,實現也較為簡單,缺點就是每次都要連接數據庫,插入一條數據來獲取自增主鍵,性能較差,且後續有數據合并場景,訂單号可能會重複。
redis代替數據庫生成ID利用Redis的原子操作 INCR和INCRBY來實現,這個自增值也是唯一的,性能要優于數據庫。
UUID可以利用數據庫,也可以利用代碼生成,全球唯一,性能較高,生成的一坨字符串,可讀性較差,字符串一般32位,也有48位的,存儲空間較大,作為主鍵索引查詢較慢,但後續如果有合并數據需求,很方便,因為每次生成的都是全球唯一的。
雪花算法由twitter提出,代碼生成,性能較高,此算法彌補了UUID的不足,它是單調遞增的,可包含一定的業務意義,有序的ID能夠提高數據庫寫入性能。
業務常見的唯一編碼有這些,沒有最好的,根據業務場景選擇适用的就行。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!