mysql id会用完吗_数据库自增ID用完了会怎样?
起步
對DBA來說這應(yīng)該是送分題吧。而我是突如其來的想法想測試下的。正常來說程序員是不會關(guān)心自增ID用完的情況的。
以 Mysql 為例,它支持的最大的整型是 unsigned bigint,上限是 2 的 64 次次方。假設(shè)每秒記錄100萬條數(shù)據(jù)的增長,用完自增ID要58萬年以后了。
自增ID用完了會怎樣,什么報錯
那要是真的58萬年以后了呢。就是要探究下用光了會怎樣。在我的 Mysql 5.7 它的報錯是:
SQL Error (167): Out of range value for column 'id'.
也有人在其他版本測出來的報錯是:
Duplicate entry '*****' for key 'PRIMARY'
可以看出,不同的數(shù)據(jù)庫底層實現(xiàn)不一樣,不同版本也有差異。只能知道會報錯,具體報錯信息是什么不好說,可能是數(shù)據(jù)越界,也可能是主鍵沖突。
vi設(shè)計http://www.maiqicn.com 辦公資源網(wǎng)站大全https://www.wode007.com
補(bǔ)充
另外,另一個讓程序員不關(guān)心自增ID用完的原因是。MySQL單機(jī)單表的處理能力是千萬級別。當(dāng)單表數(shù)據(jù)達(dá)到1千萬時,MySQL性能就會開始下降,需要著手優(yōu)化,這里的瓶頸主要是查詢耗時。
我們可以通過分區(qū)再撐一段時間,當(dāng)數(shù)據(jù)量到10億時,基本到了MySQL的極限,不分表分庫的話,業(yè)務(wù)難以持續(xù)。如果分表分庫的話那么自增ID就很難保證唯一性,這時候就得棄用自增ID,采用其他算法(如uuid)。
總的來說,從業(yè)務(wù)的角度來講自增ID不可能用完,單表也支撐不了那么大的數(shù)據(jù)量。不用擔(dān)心自增ID用完的情況。
總結(jié)
以上是生活随笔為你收集整理的mysql id会用完吗_数据库自增ID用完了会怎样?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 车主称汉DM-i一月三次刹车失灵 比亚迪
- 下一篇: 80多岁老太爬树摘榆钱 喊都喊不下来:网