中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL一張表能存的數據是多少

發布時間:2023-01-31 10:18:34 來源:億速云 閱讀:243 作者:iii 欄目:MySQL數據庫

這篇“MySQL一張表能存的數據是多少”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“MySQL一張表能存的數據是多少”文章吧。

1、知識準備

1.1、數據頁

在操作系統中,我們知道為了跟磁盤交互,內存也是分頁的,一頁大小4KB。同樣的在MySQL中為了提高吞吐率,數據也是分頁的,不過MySQL的數據頁大小是16KB。(確切的說是InnoDB數據頁大小16KB)。詳細學習可以參考官網 我們可以用如下命令查詢到。

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

今天咱們數據頁的具體結構指針等不深究,知道它默認是16kb就行了,也就是說一個節點的數據大小是16kb

1.2、索引結構(innodb)

mysql的索引結構咱們應該都知道,是如下的b+樹結構

MySQL一張表能存的數據是多少

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

MySQL一張表能存的數據是多少

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

2、具體計算方法

2.1、根節點計算

首先咱們只看根節點

比如我們設置的數據類型是bigint,大小為8b

MySQL一張表能存的數據是多少

在數據本身如今還有一小塊空間,用來存儲下一層索引數據頁的地址,大小為6kb

MySQL一張表能存的數據是多少

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

2.2、其余層節點計算

第二層其實比較容易,因為每個節點數據結構和跟節點一樣,而且在跟節點每個元素都會延伸出來一個節點,所以第二層的數據量是1170*1170=1368900,問題在于第三層,因為innodb的葉子節點,是直接包含整條mysql數據的,如果字段非常多的話數據所占空間是不小的,我們這里以1kb計算,所以在第三層,每個節點為16kb,那么每個節點是可以放16個數據的,所以最終mysql可以存儲的總數據為

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

其實計算結果與我們平時的工作經驗也是相符的,一般mysql一張表的數據超過了千萬也是得進行分表操作了。

以上就是關于“MySQL一張表能存的數據是多少”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

中阳县| 保定市| 河间市| 周至县| 西安市| 漳浦县| 昭苏县| 渑池县| 乌兰县| 大石桥市| 松桃| 犍为县| 新闻| 阿尔山市| 蓝山县| 英山县| 达州市| 华蓥市| 苍梧县| 临高县| 台中县| 印江| 屏东县| 若羌县| 呼玛县| 黎城县| 临江市| 庆阳市| 大余县| 锡林郭勒盟| 玛多县| 县级市| 农安县| 遂平县| 精河县| 衡阳县| 恭城| 临沭县| 江油市| 德惠市| 莱芜市|