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