INNODB 到底能存放多少資料?
一個INNODB SPACE 最大為64TB,但是為什麼這樣大呢?
如果我們設定innodb_file_per_table後出現了多個SPACE 那麼空間又是多大呢?
先討論一下INNODB 每個PAGE的 4-8位元組為 block 的塊號,我們檢視一下:
(工具為自己編寫放到了雲盤)
root@hadoop1 test]# bcview ibdata1 16 4 4|more
******************************************************************
This Tool Is Uesed For Find The Data In Binary format(Hexadecimal)
Usage:./bcview file blocksize offset cnt-bytes!
file: Is Your File Will To Find Data!
blocksize: Is N kb Block.Eg: 8 Is 8 Kb Blocksize(Oracle)!
Eg: 16 Is 16 Kb Blocksize(Innodb)!
offset:Is Every Block Offset Your Want Start!
cnt-bytes:Is After Offset,How Bytes Your Want Gets!
Edtor QQ:22389860!
Used gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)
******************************************************************
----Current file size is :140.000000 Mb
----Current use set blockszie is 16 Kb
current block:00000000--Offset:00004--cnt bytes:04--data is:00000000
current block:00000001--Offset:00004--cnt bytes:04--data is:00000001
current block:00000002--Offset:00004--cnt bytes:04--data is:00000002
current block:00000003--Offset:00004--cnt bytes:04--data is:00000003
current block:00000004--Offset:00004--cnt bytes:04--data is:00000004
current block:00000005--Offset:00004--cnt bytes:04--data is:00000005
current block:00000006--Offset:00004--cnt bytes:04--data is:00000006
current block:00000007--Offset:00004--cnt bytes:04--data is:00000007
current block:00000008--Offset:00004--cnt bytes:04--data is:00000008
current block:00000009--Offset:00004--cnt bytes:04--data is:00000009
current block:00000010--Offset:00004--cnt bytes:04--data is:0000000a
current block:00000011--Offset:00004--cnt bytes:04--data is:0000000b
current block:00000012--Offset:00004--cnt bytes:04--data is:0000000c
current block:00000013--Offset:00004--cnt bytes:04--data is:0000000d
current block:00000014--Offset:00004--cnt bytes:04--data is:0000000e
current block:00000015--Offset:00004--cnt bytes:04--data is:0000000f
省略......
如此我們能夠明確的看到確實每個塊的 4-8位元組為 block 的塊號,他們是連續的。
那麼一個問題來了,4位元組,最大為32位那最大數應該是2^32,而每個塊是16K(預設情況)
那麼一個SPACE為 16KB*2^32=64T,當然這個還受到具體檔案系統限制。
那麼如果有多個SPACE設定了引數innodb_file_per_table 那麼就會更大,因為每個SPACE 都偶有64T
不過64T對於現在的MYSQL來說也是一個海量了,因為現在的MYSQL還存在很多不如意的地方,真正
管理64T的資料可能真會成為問題。
如果我們設定innodb_file_per_table後出現了多個SPACE 那麼空間又是多大呢?
先討論一下INNODB 每個PAGE的 4-8位元組為 block 的塊號,我們檢視一下:
(工具為自己編寫放到了雲盤)
root@hadoop1 test]# bcview ibdata1 16 4 4|more
******************************************************************
This Tool Is Uesed For Find The Data In Binary format(Hexadecimal)
Usage:./bcview file blocksize offset cnt-bytes!
file: Is Your File Will To Find Data!
blocksize: Is N kb Block.Eg: 8 Is 8 Kb Blocksize(Oracle)!
Eg: 16 Is 16 Kb Blocksize(Innodb)!
offset:Is Every Block Offset Your Want Start!
cnt-bytes:Is After Offset,How Bytes Your Want Gets!
Edtor QQ:22389860!
Used gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)
******************************************************************
----Current file size is :140.000000 Mb
----Current use set blockszie is 16 Kb
current block:00000000--Offset:00004--cnt bytes:04--data is:00000000
current block:00000001--Offset:00004--cnt bytes:04--data is:00000001
current block:00000002--Offset:00004--cnt bytes:04--data is:00000002
current block:00000003--Offset:00004--cnt bytes:04--data is:00000003
current block:00000004--Offset:00004--cnt bytes:04--data is:00000004
current block:00000005--Offset:00004--cnt bytes:04--data is:00000005
current block:00000006--Offset:00004--cnt bytes:04--data is:00000006
current block:00000007--Offset:00004--cnt bytes:04--data is:00000007
current block:00000008--Offset:00004--cnt bytes:04--data is:00000008
current block:00000009--Offset:00004--cnt bytes:04--data is:00000009
current block:00000010--Offset:00004--cnt bytes:04--data is:0000000a
current block:00000011--Offset:00004--cnt bytes:04--data is:0000000b
current block:00000012--Offset:00004--cnt bytes:04--data is:0000000c
current block:00000013--Offset:00004--cnt bytes:04--data is:0000000d
current block:00000014--Offset:00004--cnt bytes:04--data is:0000000e
current block:00000015--Offset:00004--cnt bytes:04--data is:0000000f
省略......
如此我們能夠明確的看到確實每個塊的 4-8位元組為 block 的塊號,他們是連續的。
那麼一個問題來了,4位元組,最大為32位那最大數應該是2^32,而每個塊是16K(預設情況)
那麼一個SPACE為 16KB*2^32=64T,當然這個還受到具體檔案系統限制。
那麼如果有多個SPACE設定了引數innodb_file_per_table 那麼就會更大,因為每個SPACE 都偶有64T
不過64T對於現在的MYSQL來說也是一個海量了,因為現在的MYSQL還存在很多不如意的地方,真正
管理64T的資料可能真會成為問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2060586/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- InnoDB一棵B+樹可以存放多少行資料?
- mysql一張表到底能存多少資料?MySql
- 面試題:InnoDB中一棵B+樹能存多少行資料?面試題
- InnoDB,能將資料儲存在DVD裡?
- 大資料的魔力你到底知道多少大資料
- 資料分析告訴你,炒股能賠多少錢?
- Java集合不能存放基本資料型別,只存放物件的引用Java資料型別物件
- 改變資料頁大小能帶來多少收益?
- 一天伺服器到底能放多少個網站呢?伺服器網站
- Java 17到底快了多少?Java
- Vector中存放自定義資料型別資料型別
- InnoDB資料頁結構
- 能窺見未來的大資料+AI,你瞭解多少?大資料AI
- 修改Oracle資料檔名及資料檔案存放路徑Oracle
- main函式你到底知道多少AI函式
- 短時間曝光近40000次,微信附近推到底能帶來多少財富?
- 資料填充檔案最大一次能執行多少條sqlSQL
- InnoDB資料字典--字典表載入
- innodb是如何存資料的?yyds
- mysql之 表資料存放路徑非datadir目錄MySql
- 帝國CMS備份資料壓縮存放目錄
- java到底能幹嘛?Java
- 關於InnoDB表資料和索引資料的儲存索引
- 在Java虛擬機器中,字串常量到底存放在哪Java虛擬機字串
- 資料治理的資料質量知多少
- InnoDB資料字典詳解-系統表
- InnoDB學習(六)之資料庫鎖資料庫
- mysql儲存引擎InnoDB詳解,從底層看清InnoDB資料結構MySql儲存引擎資料結構
- 從一條資料說起——InnoDB儲存資料結構資料結構
- 『全國高速免費79天到底少收了多少通行費?』今日資料行業日報(2020.05.09)行業
- MySQL-07.InnoDB資料儲存結構MySql
- MySQL資料庫innodb_fast_shutdown引數MySql資料庫AST
- 【Mysql】InnoDB 引擎中的資料頁結構MySql
- document表能負載多少?多少不會影響效率?負載
- CSS 你到底有多少長度單位?CSS
- 到底有多少物聯網資產暴露在網際網路上?
- 資料標註行業知多少行業
- 大資料時代,低程式碼開發到底能夠為企業帶來什麼?大資料
- 資料庫系列:MySQL InnoDB鎖機制介紹資料庫MySql