mysql一張表到底能存多少數(shù)據(jù)?

前言

程序員平時和mysql打交道一定不少兽掰,可以說每天都有接觸到,但是mysql一張表到底能存多少數(shù)據(jù)呢徒役?計算根據(jù)是什么呢孽尽?接下來咱們逐一探討

知識準備

數(shù)據(jù)頁

在操作系統(tǒng)中,我們知道為了跟磁盤交互廉涕,內(nèi)存也是分頁的泻云,一頁大小4KB。同樣的在MySQL中為了提高吞吐率狐蜕,數(shù)據(jù)也是分頁的宠纯,不過MySQL的數(shù)據(jù)頁大小是16KB。(確切的說是InnoDB數(shù)據(jù)頁大小16KB)层释。詳細學(xué)習(xí)可以參考官網(wǎng)
我們可以用如下命令查詢到婆瓜。

mysql> SHOW GLOBAL STATUS LIKE 'innodb_page_size';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| Innodb_page_size | 16384 |
+------------------+-------+
1 row in set (0.00 sec)

今天咱們數(shù)據(jù)頁的具體結(jié)構(gòu)指針等不深究,知道它默認是16kb就行了,也就是說一個節(jié)點的數(shù)據(jù)大小是16kb

索引結(jié)構(gòu)(innodb)

mysql的索引結(jié)構(gòu)咱們應(yīng)該都知道廉白,是如下的b+樹結(jié)構(gòu)


image

通常b+樹非葉子節(jié)點不存儲數(shù)據(jù)个初,只有葉子節(jié)點(最下面一層)才存儲數(shù)據(jù),那么咱們說回節(jié)點猴蹂,一個節(jié)點指的是(對于上圖而言)

image

每個紅框選中的部分稱為一個節(jié)點院溺,而不是說某個元素。
了解了節(jié)點的概念和每個節(jié)點的大小為16kb之后磅轻,咱們計算mysql能存儲多少數(shù)據(jù)就容易很多了

具體計算方法

根節(jié)點計算

首先咱們只看根節(jié)點

比如我們設(shè)置的數(shù)據(jù)類型是bigint珍逸,大小為8b


image

在數(shù)據(jù)本身如今還有一小塊空間,用來存儲下一層索引數(shù)據(jù)頁的地址聋溜,大小為6b

image

所以我們是可以計算出來一個數(shù)據(jù)為(8b+6b=14b)的空間(以bigint為例)
我們剛剛說到一個數(shù)據(jù)頁的大小是16kb,也就是(161024)b谆膳,那么根節(jié)點是可以存儲(161024/(8+6))個數(shù)據(jù)的,結(jié)果大概是1170個數(shù)據(jù)
如果跟節(jié)點的計算方法計算出來了撮躁,那么接下來的就容易了漱病。

其余層節(jié)點計算

第二層其實比較容易,因為每個節(jié)點數(shù)據(jù)結(jié)構(gòu)和跟節(jié)點一樣把曼,而且在跟節(jié)點每個元素都會延伸出來一個節(jié)點杨帽,所以第二層的數(shù)據(jù)量是1170*1170=1368900,問題在于第三層祝迂,因為innodb的葉子節(jié)點睦尽,是直接包含整條mysql數(shù)據(jù)的,如果字段非常多的話數(shù)據(jù)所占空間是不小的型雳,我們這里以1kb計算,所以在第三層山害,每個節(jié)點為16kb纠俭,那么每個節(jié)點是可以放16個數(shù)據(jù)的冤荆,所以最終mysql可以存儲的總數(shù)據(jù)為

1170 * 1170 * 16 = 21902400 (千萬級條)

其實計算結(jié)果與我們平時的工作經(jīng)驗也是相符的钓简,一般mysql一張表的數(shù)據(jù)超過了千萬也是得進行分表操作了。

總結(jié)

最后用一張圖片總結(jié)一下今天討論的內(nèi)容外邓,希望您能喜歡


Xnip2021-02-22_20-18-33.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市光涂,隨后出現(xiàn)的幾起案子忘闻,更是在濱河造成了極大的恐慌,老刑警劉巖重虑,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異提针,居然都是意外死亡,警方通過查閱死者的電腦和手機嗜价,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瑟由,“玉大人歹苦,你說我怎么就攤上這事〕帐” “怎么了动遭?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長宵蕉。 經(jīng)常有香客問我,道長稼稿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上天梧,老公的妹妹穿的比我還像新娘冕香。我一直安慰自己突那,他們只是感情好,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著芝加,像睡著了一般。 火紅的嫁衣襯著肌膚如雪射窒。 梳的紋絲不亂的頭發(fā)上藏杖,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天蝌麸,我揣著相機與錄音艾疟,去河邊找鬼。 笑死兽间,一個胖子當著我的面吹牛帜羊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播稠集,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼奶段,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了晦鞋?” 一聲冷哼從身側(cè)響起蹲缠,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤棺克,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后线定,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體娜谊,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年渔肩,在試婚紗的時候發(fā)現(xiàn)自己被綠了因俐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡周偎,死狀恐怖抹剩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蓉坎,我是刑警寧澤澳眷,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站蛉艾,受9級特大地震影響钳踊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜勿侯,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一拓瞪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧助琐,春花似錦祭埂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至掘譬,卻和暖如春泰演,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背葱轩。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工睦焕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人靴拱。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓复亏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缭嫡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容