青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長網

17站長網 首頁 數據庫 Mysql 查看內容

MYSQL INNODB 怎樣計算B+樹表的最大容量和行數

2023-3-16 14:16| 查看: 2054 |來源: 互聯網

考慮表結構如下: create table testzh(id int primary key auto_increment ,id2 int,id3 int);插入數據:delimiter //create procedure ins3()begindeclare i ...
考慮表結構如下:
     create table testzh(id int  primary key auto_increment ,id2 int,id3 int);
插入數據:
delimiter //
 create procedure ins3()
     begin
    declare i int;
     set i=0;
     while i<10000 do
         insert into testzh(id2,id3) values(FLOOR((RAND()*100000)),FLOOR((RAND()*100000)));
         set i=i+1;
     end while;
  end;
//
delimiter ;
 
 
     這里僅僅考慮聚合索引的B+數結構。
     首先我們要考慮2個因素:
1、分支節點如何存儲一行數據
2、葉子結點如何存儲一行數據
 
位了找到這個問題我們必須要找到哪些塊是葉子結點,哪些塊是非葉子結點,這里使用自己寫的一個程序
找到詳細參考最后的代碼
(http://blog.itpub.net/7728585/viewspace-2128817/)
[root@testmy test]# ./t1  testzh.ibd
file size is 442368
Block id is 3:Index page no is 552 : B+ Tree Level is 1
Block id is 4:Index page no is 552 : B+ Tree Level is 0
Block id is 5:Index page no is 552 : B+ Tree Level is 0
Block id is 6:Index page no is 552 : B+ Tree Level is 0
Block id is 7:Index page no is 552 : B+ Tree Level is 0
Block id is 8:Index page no is 552 : B+ Tree Level is 0
Block id is 9:Index page no is 552 : B+ Tree Level is 0
.....
 
可以看到在這個文件中block_id = 3的是非葉子結點
其他的塊是葉子結點。
那我們來研究第一個問題
1、分支節點如何存儲一行數據
其實這個問題答案就是
6字節固定開銷+4字節(int數據類型4字節)+4字節(指向葉子結點的指針開銷)
我們知道每個數據庫塊的前120直接是管理固定開銷如:
FILE HEADER,INDEX HEADER等
在塊尾部也有8字節的固定開銷
那么我們從offset 120開始向后面數14個字節,這里也要使用我自己寫的工具
bcview 方便查看
./bcview testzh.ibd 16 120 14
current block:00000003--Offset:00120--cnt bytes:14--data is:00100011000e8000000100000004
得到數據:
00100011000e8000000100000004
分析一下:
00100011000e8000000100000004
 
固定開銷(6字節)
00    nullable field bitmap (?)
10    info flags+number of records owned
0011  order+ record type (0000 0000 0001 0001)
000e     下一個偏移量
--可變開銷(實際數據4字節)
80000001 (實際主鍵數據1其中8是符號位)
--固定開銷(4字節)
00000004 (葉子結點block指針)
我們可以看到這是非葉子結點存儲數據的格式如此,除了4字節的主鍵外,這里包含了10字節的額外開銷。
 
2、葉子結點如何存儲一行數據
接下來我們來看一下這個表的每一行數據是如何存放的,二進制如下:
./bcview testzh.ibd 16 120 31
current block:00000004--Offset:00120--cnt bytes:31--data is:00000010001f800000010000004d1995cd000001440110800046cd80000683
 
00 nullable field bitmap(?)
00 info flags+number of records owned
0010 order+record type
001f 下一個偏移量
80000001 (實際主鍵id數據1其中8是符號位)
0000004d1995  transaction id
cd000001440110 roll pointer
800046cd (實際數據id2:18125 8是符號位)
80000683 (實際數據id2:1667  8是符號位)
 
 
實際上就是31個字節
那么我們很容易計算出來如果滿存儲行大約(16*1024-128(塊頭塊尾部))/31 = 524 行數據。當然實際上存儲達不到這個值受到
B+樹分裂行為以及填充因子等限制實際上到不了這個值,我這里去大約500行數據
 
好了對于這張表這里我們可以實際大約計算一下理論值,實際值將略。
 
一層B+樹     最大16K空間                                                                                         約500行數據
二層B+樹     最大約18M空間((16*1024-128)/14 * 16/1024 )                                         約58000行數據((16*1024-128)/14 *500)
三層B+樹     最大約21000M空間(power((16*1024-130)/14,2) * 16/1024)                       約673960500行數據(power((16*1024-130)/14,2) * 500)
四層B+樹     最大約24452000M空間(power((16*1024-130)/14,3) * 16/1024)                  約782468140500行數據(power((16*1024-130)/14,3) * 500)
 
 
但是要注意這里最大空間受到主鍵選擇影響很大,如果不是int為主鍵那么其非葉子結點一行數據將不會是14字節如果是long類型將是18字節,那么最大空間
將不會達到這么大,而行數更是受到實際一行數據大小限制,這里只是以文章開頭建立的表為列子。
本文最后更新于 2023-3-16 14:16,某些文章具有時效性,若有錯誤或已失效,請在網站留言或聯系站長:17tui@17tui.com
·END·
站長網微信號:w17tui,關注站長、創業、關注互聯網人 - 互聯網創業者營銷服務中心

免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!

17站長網微信二維碼

始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!

掃一掃,關注站長網微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        主站蜘蛛池模板: 日本一区精品久久久久影院 | 亚洲国产精品自在自线观看 | 国产午夜一区二区三区免费视频 | 秋霞午夜一级理论片久久 | 538prom国产在线视频一区 | 国精产品999一区二区三区有限 | 国产ts调教 | 又色又爽又黄gif动态视频 | 老师系列高H文 | 99国内偷揿国产精品人妻 | 男人脱女人衣服吃奶视频 | 亚洲视频中文字幕 | tobu中国日本高清 | 亚洲中字幕永久在线观看 | 肉色欧美久久久久久久蜜桃 | 国产婷婷色综合AV蜜臀AV | 国产精品亚洲精品日韩电影 | 亚洲精品乱码久久久久久中文字幕 | 女同给老师下媚药 | 亚洲午夜久久久久中文字幕 | 免费高清毛片 | 狠狠色狠狠色综合日日91app | 51国产偷自视频在线视频播放 | 国产免费内射又粗又爽密桃视频 | 99RE8国产这里只有精品 | jk制服啪啪网站 | 美国z0069| 亚洲2017久无码 | 久久视频这只精品99re6 | 人人碰在线视频 | 草莓视频免费在线观看 | 2022国产精品不卡a | 城中村快餐嫖老妇对白 | 别停好爽好深好大好舒服视频 | 成激人情在线影院920 | 国产深夜福利视频在线 | 韩国精品无码少妇在线观看网站 | 国产精品日本无码久久一老A | 娇妻归来在线观看免费完整版电影 | 中文在线中文资源 | 娇妻被朋友玩得呻吟在线电影 |