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

溫馨提示×

溫馨提示×

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

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

MySQL中的表和區舉例分析

發布時間:2021-11-18 16:25:08 來源:億速云 閱讀:191 作者:iii 欄目:MySQL數據庫

本篇內容主要講解“MySQL中的表和區舉例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MySQL中的表和區舉例分析”吧!

MySQL中的區
無論何種情況,區的大小總是1M,但是剛建表表分配的比較少。
1.創建一個數據庫
mysql> create database vastdata;
Query OK, 1 row affected (0.01 sec)
2.使用這個數據庫
mysql> use vastdata
Database changed
3.創建一張表
mysql> create table t1 (col1 int not null auto_increment,col2 varchar(7000),primary key(col1))engine=InnoDB;
Query OK, 0 rows affected (0.01 sec)
4.插入兩條數據 其中repeat('a',7000)為將a連續7000次,也就是7000個a。所以我們將一條記錄視為7K大小。
在MySQL中一個數據頁的大小是16KB,所以兩條記錄就會占用一個頁
mysql> insert t1 select null,repeat('a',7000);
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0
mysql> insert t1 select null,repeat('a',7000);
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0
5.查看t1表所對應的數據文件大小
mysql> system ls -lh /data/mydb/vastdata/t1.ibd
-rw-rw---- 1 mysql mysql 96K Oct 17 01:09 /data/mydb/vastdata/t1.ibd
6.使用py_innodb_page_info.py工具查看數據文件中頁的分布
[root@vast python]# python py_innodb_page_info.py -v /data/mydb/vastdata/t1.ibd 
page offset 00000000, page type   #系統的頁
page offset 00000001, page type  #系統的頁
page offset 00000002, page type  #系統的頁
page offset 00000003, page type , page level <0000> #存放數據的頁
page offset 00000000, page type  #空閑頁
page offset 00000000, page type  #空閑頁
Total number of page: 6:  #分配的頁數
Freshly Allocated Page: 2  #空閑的頁數
Insert Buffer Bitmap: 1     #系統中Insert Buffer Bitmap對應的頁數
File Space Header: 1        #系統中File Space Header對應的頁數
B-tree Node: 1                #存放數據的頁數
File Segment inode: 1     系統中File Segment inode對應的頁數
7.查看當前t1對應的數據文件大小
-rw-rw---- 1 mysql mysql 96K Oct 17 01:09 /data/mydb/vastdata/t1.ibd
這里會發現,t1表大小只有96K,沒有直接分配1M。
8.再次插入一行記錄,大小約為7KB
mysql> insert t1 select null,repeat('a',7000);
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0
9.再次查看數據文件大小,依然為96K
mysql> system ls -lh /data/mydb/vastdata/t1.ibd
-rw-rw---- 1 mysql mysql 96K Oct 17 01:15 /data/mydb/vastdata/t1.ibd
10.查看一下當前此數據文件的內部頁分布
[root@vast python]# python py_innodb_page_info.py -v /data/mydb/vastdata/t1.ibd 
page offset 00000000, page type
page offset 00000001, page type
page offset 00000002, page type
page offset 00000003, page type , page level <0001>
page offset 00000004, page type , page level <0000>
page offset 00000005, page type , page level <0000>
Total number of page: 6:
Insert Buffer Bitmap: 1
File Space Header: 1
B-tree Node: 3
File Segment inode: 1
我們可以的看到,空閑頁沒有了。其中00000004,00000005為存放數據塊 00000003為根所對應的塊。

11.創建一個存儲過程,目的是簡化插入。

mysql> delimiter //
mysql> create procedure load_t1(count INT UNSIGNED)
    -> begin
    -> declare s int unsigned default 1;
    -> declare c varchar(7000) default repeat('a',7000);
    -> while s <= count DO
    -> insert into t1 select NULL,c;
    -> set s = s+1;
    -> end while;
    -> end;
    -> //
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;
12.執行這個存儲過程,60則表示在表中插入60行,每行都是7000個a

mysql> call load_t1(60);
Query OK, 1 row affected (0.06 sec)
13.查看表有多少行記錄,可見為63行

mysql> select count(*) from t1;
+----------+
| count(*) |
+----------+
|       63 |
+----------+
1 row in set (0.00 sec)
14.查看數據文件大小

mysql> system ls -lh /data/mydb/vastdata/t1.ibd
-rw-rw---- 1 mysql mysql 576K Oct 17 01:39 /data/mydb/vastdata/t1.ibd

63 * 7KB = 441KB 兩行記錄需要一個數據頁,故這63行需要32個數據頁
15.查看數據文件中頁的分布,驗證一下猜想
[root@vast python]# python py_innodb_page_info.py -v /data/mydb/vastdata/t1.ibd
page offset 00000000, page type <File Space Header>
page offset 00000001, page type <Insert Buffer Bitmap>
page offset 00000002, page type <File Segment inode>
page offset 00000003, page type <B-tree Node>, page level <0001>
page offset 00000004, page type <B-tree Node>, page level <0000>
page offset 00000005, page type <B-tree Node>, page level <0000>
page offset 00000006, page type <B-tree Node>, page level <0000>
page offset 00000007, page type <B-tree Node>, page level <0000>
page offset 00000008, page type <B-tree Node>, page level <0000>
page offset 00000009, page type <B-tree Node>, page level <0000>
page offset 0000000a, page type <B-tree Node>, page level <0000>
page offset 0000000b, page type <B-tree Node>, page level <0000>
page offset 0000000c, page type <B-tree Node>, page level <0000>
page offset 0000000d, page type <B-tree Node>, page level <0000>
page offset 0000000e, page type <B-tree Node>, page level <0000>
page offset 0000000f, page type <B-tree Node>, page level <0000>
page offset 00000010, page type <B-tree Node>, page level <0000>
page offset 00000011, page type <B-tree Node>, page level <0000>
page offset 00000012, page type <B-tree Node>, page level <0000>
page offset 00000013, page type <B-tree Node>, page level <0000>
page offset 00000014, page type <B-tree Node>, page level <0000>
page offset 00000015, page type <B-tree Node>, page level <0000>
page offset 00000016, page type <B-tree Node>, page level <0000>
page offset 00000017, page type <B-tree Node>, page level <0000>
page offset 00000018, page type <B-tree Node>, page level <0000>
page offset 00000019, page type <B-tree Node>, page level <0000>
page offset 0000001a, page type <B-tree Node>, page level <0000>
page offset 0000001b, page type <B-tree Node>, page level <0000>
page offset 0000001c, page type <B-tree Node>, page level <0000>
page offset 0000001d, page type <B-tree Node>, page level <0000>
page offset 0000001e, page type <B-tree Node>, page level <0000>
page offset 0000001f, page type <B-tree Node>, page level <0000>
page offset 00000020, page type <B-tree Node>, page level <0000>
page offset 00000021, page type <B-tree Node>, page level <0000>
page offset 00000022, page type <B-tree Node>, page level <0000>
page offset 00000023, page type <B-tree Node>, page level <0000>
Total number of page: 36:
Insert Buffer Bitmap: 1
File Space Header: 1
B-tree Node: 33
File Segment inode: 1
這里看到存放數據的數據頁為33個,其中一個為根。32+1=33
16.在插入一行記錄

mysql> call load_t1(1);
Query OK, 1 row affected (0.01 sec)
17.查看數據文件大小,發現這時,數據文件為2M

mysql> system ls -lh /data/mydb/vastdata/t1.ibd
-rw-rw---- 1 mysql mysql 2.0M Oct 17 01:50 /data/mydb/vastdata/t1.ibd
mysql>

18.查看數據文件中頁的分布。
[root@vast python]# python py_innodb_page_info.py  /data/mydb/vastdata/t1.ibd
Total number of page: 128:
Freshly Allocated Page: 91
Insert Buffer Bitmap: 1
File Space Header: 1
B-tree Node: 34
File Segment inode: 1
可見這時,剩余91個空閑頁。

到此,相信大家對“MySQL中的表和區舉例分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

AI

东乡县| 普宁市| 齐河县| 营山县| 浦县| 永清县| 镇远县| 信阳市| 宁强县| 澳门| 凉山| 招远市| 荥经县| 绥德县| 无极县| 滁州市| 岳阳县| 建始县| 井研县| 安阳市| 淮滨县| 武强县| 昌吉市| 龙州县| 乌兰察布市| 枞阳县| 五台县| 大理市| 梁平县| 福清市| 安多县| 宁晋县| 梧州市| 神木县| 调兵山市| 石河子市| 洛阳市| 安宁市| 基隆市| 上杭县| 临泉县|