mysql 单表数据量多大_MySQL单表到底可以多大
前天突然收到Monitor Center發(fā)出來(lái)的報(bào)警:
PROBLEM:CN_DSL_***4/MAXFILE is CRITICAL,SNMP CRITICAL – *These File size is larger than 18932735283: /abc/def/ghi/***/***.MYD
剛看到這個(gè)報(bào)警的時(shí)候,還嚇了一跳。數(shù)據(jù)文件超過(guò)最大文件限制?不會(huì)吧?好像才18G嘛,怎么會(huì)就開(kāi)始報(bào)警了?
于是開(kāi)始查找報(bào)警來(lái)源,經(jīng)過(guò)一番查找,總算找到服務(wù)器來(lái)設(shè)計(jì)的。所以他們?cè)趍ysql的“.MYD”和“.MYI”文件。
說(shuō)到文件大小,剛好常有人問(wèn)我說(shuō)mysql是否有單個(gè)表的大小限制?限制多大呢?這里做一個(gè)簡(jiǎn)單的介紹吧。
在老版本的mysql 3.22中,mysql的單表限大小為4GB,當(dāng)時(shí)的mysql的mysql 3.23開(kāi)始,mysql單表最大限制就已經(jīng)擴(kuò)大到了64PB了(官方文檔顯示)。也就是說(shuō),從目前的技術(shù)環(huán)境來(lái)看,mysql數(shù)據(jù)庫(kù)的MyISAM存儲(chǔ)引擎單表大小限制已經(jīng)不是有mysql數(shù)據(jù)庫(kù)本身來(lái)決定,而是由所在主機(jī)的OS上面的文件系統(tǒng)來(lái)決定了。
而mysql另外一個(gè)最流行的存儲(chǔ)引擎之一Innodb存儲(chǔ)數(shù)據(jù)的策略是分為兩種的,一種是共享表空間存儲(chǔ)方式,還有一種是獨(dú)享表空間存儲(chǔ)方式。
當(dāng)使用共享表空間存儲(chǔ)方式的時(shí)候,Innodb的所有數(shù)據(jù)保存在一個(gè)單獨(dú)的表空間里面,而這個(gè)表空間可以由很多個(gè)文件組成,一個(gè)表可以跨多個(gè)文件存在,所以其大小限制不再是文件大小的限制,而是其自身的限制。從Innodb的官方文檔中可以看到,其表空間的最大限制為64TB,也就是說(shuō),Innodb的單表限制基本上也在64TB左右了,當(dāng)然這個(gè)大小是包括這個(gè)表的所有索引等其他相關(guān)數(shù)據(jù)。
而當(dāng)使用獨(dú)享表空間來(lái)存放Innodb的表的時(shí)候,每個(gè)表的數(shù)據(jù)以一個(gè)單獨(dú)的文件來(lái)存放,這個(gè)時(shí)候的單表限制,又變成文件系統(tǒng)的大小限制了。
以下是從收集到的一點(diǎn)信息,不一定全部準(zhǔn)確:
操作系統(tǒng)??????????????????????????????????? 大小限制
win32 w/ FAT/FAT32????????????? 2GB/4GB
win32 w/ NTFS????????????????????? 2TB(可能更大)
Linux 2.2-Intel 32-bit??????????? 2GB (LFS: 4GB)
Linux 2.4+??????????????????????????? 4TB(ext3)
Solaris 9/10???????????????????????? 16TB
NetWare w/NSS filesystem? 8TB
macOS X w/ HFS+?????????????? 2TB
以下是mysql文檔中的內(nèi)容:
Windows用戶請(qǐng)注意: FAT和VFAT (FAT32)不適合mysql的生產(chǎn)使用。應(yīng)使用NTFS。
在默認(rèn)情況下,mysql創(chuàng)建的MyISAM表允許的最大尺寸為4GB。你可以使用SHOW TABLE STATUS語(yǔ)句或myisamchk -dv tbl_name檢查表的最大尺寸。請(qǐng)參見(jiàn)13.5.4節(jié),“SHOW語(yǔ)法”。
如果需要使用大于4GB的MyISAM表(而且你的操作系統(tǒng)支持大文件),可使用允許AVG_ROW_LENGTH和MAX_ROWS選項(xiàng)的CREATE TABLE語(yǔ)句。創(chuàng)建了表后,也可以使用ALTER TABLE更改這些選項(xiàng),以增加表的最大允許容量。
總結(jié)
以上是生活随笔為你收集整理的mysql 单表数据量多大_MySQL单表到底可以多大的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [转]performSelector延时
- 下一篇: MySQL 的 max_allowed_