Mysql中的單表最大記錄是多少
目錄
- mysql單表最大記錄數(shù)不能超過(guò)多少
- mysql單表存儲(chǔ)數(shù)據(jù)量有上限嗎
- 總結(jié)
mysql單表最大記錄數(shù)不能超過(guò)多少
其實(shí)mysql本身并沒(méi)有對(duì)單表最大記錄數(shù)進(jìn)行限制,這個(gè)數(shù)值取決于你的操作系統(tǒng)對(duì)單個(gè)文件的限制本身。
從性能角度來(lái)講,Mysql單表數(shù)據(jù)不要超過(guò)多少呢?
業(yè)界流傳是500萬(wàn)行,超過(guò)500萬(wàn)行就要考慮分庫(kù)分表了。
曾經(jīng)在中國(guó)互聯(lián)網(wǎng)技術(shù)圈廣為流傳著這么一個(gè)說(shuō)法:Mysql單表數(shù)據(jù)量大于2000萬(wàn)行,性能會(huì)明顯下降。事實(shí)上,這個(gè)傳聞最早起大概是這樣的,當(dāng)年的DBA測(cè)試Mysql性能時(shí)發(fā)現(xiàn),當(dāng)單表的量在2000萬(wàn)行量級(jí)時(shí),Sql操作的性能急劇下降,因此,結(jié)論由此傳到業(yè)界的其他公司。所以就在業(yè)界流傳開(kāi)這么一個(gè)說(shuō)法。
再后來(lái),阿里巴巴《Java開(kāi)發(fā)手冊(cè)》提出單表行數(shù)超過(guò)500萬(wàn)行或者單表容量超過(guò)2GB,才推薦進(jìn)行分庫(kù)分表。
那么當(dāng)單表容量超過(guò)500萬(wàn)行,查詢效率下降后,我們可以如何應(yīng)付呢?
有如下幾種方式(來(lái)源于真實(shí)的企業(yè)):
- 對(duì)于使用不多的表(外部依賴少,信息不重要),可以直接清除老表,數(shù)據(jù)歸檔到hbase(或類似的,大容量成本低的冷庫(kù))
- 分庫(kù)分表
- 老表保留,舊數(shù)據(jù)歸檔(參考第一點(diǎn))
mysql單表存儲(chǔ)數(shù)據(jù)量有上限嗎
在mysql中,每個(gè)數(shù)據(jù)庫(kù)最多可創(chuàng)建20億個(gè)表,
一個(gè)表允許定義1024列,
每行的最大長(zhǎng)度為8092字節(jié)(不包括文本和圖像類型的長(zhǎng)度)。
當(dāng)表中定義有varchar、nvarchar或varbinary類型列時(shí),如果向表中插入的數(shù)據(jù)行超過(guò)8092字節(jié)時(shí)將導(dǎo)致Transact-SQL語(yǔ)句失敗,并產(chǎn)生錯(cuò)誤信息。
SQL Server對(duì)每個(gè)表中行的數(shù)量沒(méi)有直接限制,但它受數(shù)據(jù)庫(kù)存儲(chǔ)空間的限制。
每個(gè)數(shù)據(jù)庫(kù)的最大空間1048516TB,所以一個(gè)表可用的最大空間為1048516TB減去數(shù)據(jù)庫(kù)類系屬統(tǒng)表和其它數(shù)據(jù)庫(kù)對(duì)象所占用的空間。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持。
相關(guān)文章:
