亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

Mysql InnoDB引擎的索引與存儲結構詳解

2024-07-25 19:09:32
字體:
來源:轉載
供稿:網友

前言

在Oracle 和SQL Server等數據庫中只有一種存儲引擎,所有數據存儲管理機制都是一樣的。

而MySql數據庫提供了多種存儲引擎。用戶可以根據不同的需求為數據表選擇不同的存儲引擎,用戶也可以根據自己的需要編寫自己的存儲引擎。

MySQL主要存儲引擎的區別

MySQL默認的存儲引擎是MyISAM,其他常用的就是InnoDB,另外還有MERGE、MEMORY(HEAP)等。

主要的幾個存儲引擎

MyISAM管理非事務表,提供高速存儲和檢索,以及全文搜索能力。

MyISAM是Mysql的默認存儲引擎。當create創建新表時,未指定新表的存儲引擎時,默認使用MyISAM。每個MyISAM在磁盤上存儲成三個文件。文件名都和表名相同,擴展名分別是.frm(存儲表定義)、.MYD (MYData,存儲數據)、.MYI (MYIndex,存儲索引)。數據文件和索引文件可以放置在不同的目錄,平均分布io,獲得更快的速度。

InnoDB存儲引擎用于事務處理應用程序,具有眾多特性,包括ACID事務支持,提供了具有提交、回滾和崩潰恢復能力的事務安全。但是對比MyISAM存儲引擎,InnoDB寫的處理效率差一些并且會占用更多的磁盤空間以保留數據和索引。

Memory將所有數據保存在內存中,可以應用于臨時表中在需要快速查找引用和其他類似數據的環境下,可提供極快的訪問。Memory使用哈希索引,所以數據的存取速度非???。

Merge允許MySQL DBA或開發人員將一系列等同的MyISAM表以邏輯方式組合在一起,并作為1個對象引用它們。對于諸如數據倉儲等VLDB環境十分適合。

不同存儲引擎的橫向對比

 

特點 MyISAM BDB Memory InnoDB
存儲限制 沒有 沒有 64TB
事務安全   支持   支持
鎖機制 表鎖 頁鎖 表鎖 行鎖
B樹索引 支持 支持 支持 支持
哈希索引     支持 支持
全文索引 支持      
集群索引       支持
數據緩存     支持 支持
索引緩存 支持   支持 支持
數據可壓縮 支持      
空間使用 N/A
內存使用 中等
批量插入的速度
支持外鍵       支持

 

查看和配置存儲引擎的操作

1.用show engines; 命令可以顯示當前數據庫支持的存儲引擎情況;

2.要查看表的定義結構等信息可以使用以下幾種命令:

Desc[ribe] tablename; //查看數據表的結構Show create table tablename; //顯示表的創建語句,可以查看創建表時指定的ENGINEshow table status like ‘tablename'/G顯示表的當前狀態值

3.設置或修改表的存儲引擎

創建數據庫表時設置存儲存儲引擎的基本語法是:

Create table tableName(columnName(列名1) type(數據類型) attri(屬性設置),columnName(列名2) type(數據類型) attri(屬性設置),……..) engine = engineName

修改存儲引擎,可以用命令

Alter table tableName engine =engineName

對于整個服務器或方案,你并不一定要使用相同的存儲引擎,可以為方案中的每個表使用不同的存儲引擎。

InnoDB的存儲結構

InnoDB使用頁面存儲結構,下面是InnoDB的表空間結構圖:

Mysql,InnoDB,引擎,索引,存儲結構

Page頁面存儲格式如下圖所示:

Mysql,InnoDB,引擎,索引,存儲結構

一個頁面的存儲由以下幾部分組成:

  1. 頁頭(Page Header):記錄頁面的控制信息,共占150字節,包括頁的左右兄弟頁面指針、頁面空間使用情況等,頁頭的詳細說明會在下一篇中描述。
  2. 最小虛記錄、最大虛記錄:兩個固定位置存儲的虛記錄,本身并不存儲數據。最小虛記錄比任何記錄都小,而最大虛記錄比任何記錄都大。
  3. 記錄堆(record heap):指上圖的橙黃色部分。表示頁面已分配的記錄空間,也是索引數據的真正存儲區域。記錄堆分為兩種,即有效記錄和已刪除記錄。有效記錄就是索引正常使用的記錄,而已刪除記錄表示索引已經刪除,不在使用的記錄,如上圖的深藍色部分。隨著記錄的更新和刪除越來越頻繁,記錄堆中已刪除記錄將會越多,即會出現越來越多的空洞(碎片)。這些已刪除記錄連接起來,就會成為頁面的自由空間鏈表。
  4. 未分配空間:指頁面未使用的存儲空間,隨著頁面不斷使用,未分配空間將會越來越小。當新插入一條記錄時,首先嘗試從自由空間鏈表中獲得合適的存儲位置(空間足夠),如果沒有滿足的,就會在未分配空間中申請。
  5. slot區:slot是一些頁面有效記錄的指針,每個slot占兩個字節,存儲了記錄相對頁面首地址的偏移。如果頁面有n條有效記錄,那么slot的數量就在n/8+2~n/4+2之間。下一節詳細介紹slot區,它是記錄頁面有序和二分查找的關鍵。
  6. 頁尾(Page Tailer):頁面最后部分,占8個字節,主要存儲頁面的校驗信息。

頁面中的頁頭,最大/最小虛記錄以及頁尾都是頁面中有固定的存儲位置。

InnoDB的索引結構

InnoDB使用B+Tree的方式存儲索引。

Innodb的一個表可能包含多個索引,每個索引都使用B+樹來存儲。而索引包括聚集索引和二級索引,聚集索引使用表的主鍵作為索引鍵,包含表的所有字段。二級索引只包含索引鍵和聚集索引鍵(主鍵)的內容,不包括其他字段。每一個索引都是一棵B+樹,每棵B+樹由很多頁面組成,而每個頁面大小一般為16K。從B+樹的組織結構來看,B樹的頁面可分為:

葉子節點:B樹層次為0的頁面,存儲記錄的所有內容。
非葉子節點:B樹層次大于0的頁面,只存儲索引鍵和頁面指針。

一棵典型的B+樹結構:

Mysql,InnoDB,引擎,索引,存儲結構

從上圖可知,相同層次的頁面是用一個雙向鏈表連接起來的。

一般情況下,從B+樹的最左邊葉子節點開始,一直向右掃描,就可以得到B+樹的從小到大的所有數據。因此,對于葉子節點,有如下特征:

頁內數據是按索引鍵排序的。

頁面的任一記錄的索引鍵值不小于其左兄弟頁面的任何記錄。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩中文在线中文网在线观看| 久久久久国产精品免费| 久久精品色欧美aⅴ一区二区| 欧美高清电影在线看| 欧美人与物videos| 一区二区三区www| 欧美疯狂性受xxxxx另类| 日韩av色在线| 午夜精品福利电影| 亚洲一区二区在线播放| 久久久久久久97| 亚洲男人天天操| 国产自产女人91一区在线观看| 欧美精品在线第一页| 日韩美女福利视频| 亚洲国产成人爱av在线播放| 国产美女久久精品| 性色av一区二区三区在线观看| 91精品国产乱码久久久久久蜜臀| 欧美人交a欧美精品| 国内精品久久久久久久久| 久久色在线播放| 亚洲石原莉奈一区二区在线观看| 国产香蕉一区二区三区在线视频| 中文字幕亚洲一区| www.亚洲男人天堂| 麻豆国产va免费精品高清在线| 亚洲欧美视频在线| 尤物yw午夜国产精品视频| 欧美日韩高清区| 欧美激情成人在线视频| 国产精品va在线播放| 亚洲香蕉av在线一区二区三区| 久久69精品久久久久久国产越南| 亚洲国产精品国自产拍av秋霞| 欧美精品性视频| 97**国产露脸精品国产| 日韩小视频在线观看| 精品五月天久久| 欧美日韩国产丝袜美女| 国产亚洲欧美另类中文| 热草久综合在线| 美女扒开尿口让男人操亚洲视频网站| 在线精品视频视频中文字幕| 久久亚洲成人精品| 久久久久成人网| 欧美激情xxxx性bbbb| 26uuu亚洲伊人春色| 欧美大码xxxx| 91久久精品日日躁夜夜躁国产| 国产ts一区二区| 精品久久久久久中文字幕一区奶水| 日本欧美黄网站| 亚洲综合日韩中文字幕v在线| 成人深夜直播免费观看| 午夜精品久久久久久久久久久久| 亚洲人成网站999久久久综合| 97婷婷涩涩精品一区| 91理论片午午论夜理片久久| 日韩av免费网站| 亚洲欧美综合区自拍另类| 亚洲欧美日本伦理| 午夜精品久久久久久久男人的天堂| 国产精品一区电影| 成人av.网址在线网站| 亚洲激情在线视频| 91在线观看免费高清完整版在线观看| 久久夜色精品国产欧美乱| 97免费中文视频在线观看| 国产精品人人做人人爽| 国产aⅴ夜夜欢一区二区三区| 国产成人福利视频| 成人午夜高潮视频| 日本久久久久久久| 精品性高朝久久久久久久| 亚洲电影免费观看高清完整版在线| 精品国产区一区二区三区在线观看| 少妇久久久久久| 色综合久久88| 国产精品91在线观看| 日韩欧美精品中文字幕| 午夜精品免费视频| 欧美麻豆久久久久久中文| 欧美国产中文字幕| 国产在线观看精品一区二区三区| 国产成人精品午夜| 亚洲第一页自拍| 久久久www成人免费精品张筱雨| 久国内精品在线| 97超级碰碰人国产在线观看| 精品成人久久av| x99av成人免费| 国产国语videosex另类| 日韩精品视频免费在线观看| 亚洲国产精品人久久电影| 国产91成人在在线播放| 亚洲在线第一页| 日韩三级成人av网| 国产一区玩具在线观看| 日韩在线观看网站| 国产精品十八以下禁看| 国产精品综合久久久| 欧美日韩一区二区免费在线观看| 国产69精品久久久久99| 国产成人精品日本亚洲| 欧美裸体xxxx极品少妇| 国产精品美女无圣光视频| 欧美激情免费在线| 日韩视频免费中文字幕| 成人激情视频在线| 欧美黑人巨大精品一区二区| 亚洲第一av在线| 国产综合在线视频| 亚洲free性xxxx护士白浆| 成人黄色免费在线观看| 亚洲天堂av综合网| 亚洲综合日韩在线| 久久99青青精品免费观看| 色中色综合影院手机版在线观看| 久久av资源网站| 欧美精品成人在线| 日韩第一页在线| 九九热精品在线| 欧美视频一二三| 上原亚衣av一区二区三区| 国内精品久久久久久久久| 黄色一区二区在线| 欧美日韩在线视频首页| 久久久av网站| 国内精品小视频| 亚洲精品自拍视频| 久久久久久久av| 久久视频在线看| 精品人伦一区二区三区蜜桃网站| 国产欧美一区二区三区在线| 亚洲色图色老头| 亚洲人成77777在线观看网| 这里只有精品在线播放| 伊人av综合网| 538国产精品一区二区在线| 国产精品r级在线| 一本色道久久综合狠狠躁篇的优点| 69久久夜色精品国产69乱青草| 性色av一区二区三区免费| 久久久久久成人| 欧美精品一二区| 欧美视频免费在线观看| 日韩精品视频免费专区在线播放| 国产成人精品999| 国产精品视频大全| 欧美成人亚洲成人日韩成人| 久久久久国产精品免费网站| 久久精品视频va| 97av在线视频免费播放| 欧美成人手机在线| 国产一区二区三区中文| 久久五月天色综合| 欧美一区第一页| 欧美精品久久久久久久免费观看| 尤物yw午夜国产精品视频明星| 欧美韩国理论所午夜片917电影| 中文字幕亚洲综合| 国产欧美精品日韩| 国产成人拍精品视频午夜网站|