欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2021年03月19日 08:55:15   作者:程序員養(yǎng)成日記  
這篇文章主要介紹了淺談mysql一張表到底能存多少數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

程序員平時和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)

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

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

具體計算方法

根節(jié)點計算

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

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

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

所以我們是可以計算出來一個數(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)容,希望您能喜歡

到此這篇關(guān)于淺談mysql一張表到底能存多少數(shù)據(jù)的文章就介紹到這了,更多相關(guān)mysql表存多少數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談SQLite時間函數(shù)的使用說明與總結(jié)分析

    淺談SQLite時間函數(shù)的使用說明與總結(jié)分析

    本篇文章是對SQLite時間函數(shù)的使用進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • mysql中varchar類型的日期進行比較、排序等操作的實現(xiàn)

    mysql中varchar類型的日期進行比較、排序等操作的實現(xiàn)

    在mysql使用過程中,日期一般都是以datetime、timestamp等格式進行存儲的,但有時會因為特殊的需求或歷史原因,日期的存儲格式是varchar,那么應(yīng)該怎么進行比較和排序等問題,本文就來介紹一下
    2021-11-11
  • MySQL在grant時報錯ERROR?1064?(42000)的原因及解決方法

    MySQL在grant時報錯ERROR?1064?(42000)的原因及解決方法

    網(wǎng)上查到的grant方式大多會報錯,主要原因是MySQL版本8.0后不能再使用原來的方式,這篇文章主要介紹了MySQL在grant時報錯ERROR?1064?(42000),需要的朋友可以參考下
    2022-08-08
  • MySQL基礎(chǔ)教程第一篇 mysql5.7.18安裝和連接教程

    MySQL基礎(chǔ)教程第一篇 mysql5.7.18安裝和連接教程

    這篇文章主要為大家詳細介紹了MySQL基礎(chǔ)教程第一篇,mysql5.7.18安裝和連接教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • mysql中mydumper 和 mysqldump 對比使用

    mysql中mydumper 和 mysqldump 對比使用

    MySQL數(shù)據(jù)庫備份工具有其自帶的mysqldump,屬于mysql官方的一款備份工具。但是第三方備份工具mydumper憑借優(yōu)越的特點為更多人所使用。下面就通過測試驗證它們之間的備份效率。
    2017-05-05
  • mysql求和函數(shù)使用示例

    mysql求和函數(shù)使用示例

    求和函數(shù)在某些有計算的情況下會使用到,在本將為大家介紹下mysql中時如何實現(xiàn)求和的,感興趣的朋友可以參考下,希望對大家有所幫助
    2013-09-09
  • innodb存儲引擎修改表共享空間為獨立空間

    innodb存儲引擎修改表共享空間為獨立空間

    最近在優(yōu)化mysql innodb存儲引擎,把共享表空間轉(zhuǎn)換成獨立表空間,下面是詳細步驟
    2014-01-01
  • Mysql8.0壓縮包安裝方法(詳細教程一步步安裝)

    Mysql8.0壓縮包安裝方法(詳細教程一步步安裝)

    這篇文章主要給大家介紹了關(guān)于Mysql8.0壓縮包安裝方法,文中介紹的非常詳細,Mysql安裝的時候可以有msi安裝和zip解壓縮兩種安裝方式,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • MySQL復(fù)制表的三種方式(小結(jié))

    MySQL復(fù)制表的三種方式(小結(jié))

    這篇文章主要介紹了MySQL復(fù)制表的三種方式(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • WINDOWS下安裝MYSQL教程詳解

    WINDOWS下安裝MYSQL教程詳解

    這篇文章主要介紹了WINDOWS下安裝MYSQL教程,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10

最新評論