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
- MySQL 資料庫 到底能支撐多少表?MySql資料庫
- 資料行業從業者到底能掙多少錢?行業
- 面試題:InnoDB中一棵B+樹能存多少行資料?面試題
- 大資料的魔力你到底知道多少大資料
- InnoDB,能將資料儲存在DVD裡?
- [20121019]8k資料塊到底能放多少行記錄.txt
- 資料分析告訴你,炒股能賠多少錢?
- 熱門APP能賺多少錢?–資料資訊圖APP
- 一天伺服器到底能放多少個網站呢?伺服器網站
- 改變資料頁大小能帶來多少收益?
- 【Python】資料存放入mysql資料庫PythonMySql資料庫
- AWR取樣資料存放位置
- Java 17到底快了多少?Java
- Java集合不能存放基本資料型別,只存放物件的引用Java資料型別物件
- 改變mysql資料存放路徑MySql
- 能窺見未來的大資料+AI,你瞭解多少?大資料AI
- 資料解讀:歌手能從音樂網站賺多少錢?網站
- 10g 資料檔案頭到底有多少資料塊,還是說固定有多大?
- 資料庫裡存放的是什麼?資料庫
- main函式你到底知道多少AI函式
- 字串常量到底存放在哪個儲存區字串
- 書的成本幾何?出版一本書出版社到底能賺多少錢?
- InnoDB資料頁結構
- 修改Oracle資料檔名及資料檔案存放路徑Oracle
- 資料填充檔案最大一次能執行多少條sqlSQL
- 修改預設MYSQL資料庫data存放位置MySql資料庫
- 更改MySQL資料檔案存放目錄位置MySql
- java到底能幹嘛?Java
- MySQL索引到底支援多少位元組?MySql索引
- 到底開發者需要掌握多少門語言?
- 技術債 - 到底花你多少錢?
- 資料模型需要多少訓練資料?模型
- 【LOB】使用資料泵時 LOB 欄位存放位置
- 國產資料庫知多少?資料庫
- 資料治理的資料質量知多少
- document表能負載多少?多少不會影響效率?負載