在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

剖析MySQL InnoDB存儲原理(上)

jf_78858299 ? 來源:老李說架構之道 ? 作者:夢海飛翔 ? 2023-02-15 15:45 ? 次閱讀

一、MySQL記錄的存儲結構:

1、Page的結構,如下圖:

圖片

1.1 頁頭

記錄頁面的控制信息,共占56字節,包括頁的左右兄弟頁面指針、頁面空間使用情況等。

1.2 虛記錄

最大虛記錄:比頁內最大主鍵還大

最小虛記錄:比頁內最小主鍵還小

1.3 記錄堆

行記錄存儲區,分為有效記錄和已刪除記錄

1.4 自由空間鏈表

已刪除記錄組成的鏈表

1.5 未分配空間

頁面未使用的存儲空間;

2、Page頁內記錄的維護

2.1 順序保證

邏輯連續,如圖所示:

圖片

2.2 插入策略

為了提高內存的利用率,減少內存碎片化空洞,首先從自由空間鏈表中分配(已刪除的記錄鏈表),如果空間不夠再從未分配空間分配;

2.3 頁內查詢

二分查找,首先從物理連續的solt(0~n)中查找所在的solt位,然后再從page邏輯鏈表中找到所對應的記錄;如圖所示;

圖片

3、Page頁內數據特性

3.1 PageSize的固定大小為16KB

3.2 每頁至少兩天記錄,單行最大為8KB

3.3 最多存儲10個大字段

數據段最大768 ->(768+20)*10<8K

超出部分存儲在溢出頁

3.4 VARCHAR

1或2個字節描述字符長度;

實際內容存儲在長度字節之后;

VARCHAR(255) [一個字節]+內容

VARCHAR(256) [兩個字節]+內容

二、 InnoDB索引原理和優化

1、索引的原理分析

1.1 聚簇索引

數據存儲在主鍵索引中,數據按主鍵順序存儲,如圖所示:

圖片

1.2 二級索引

除主鍵索引以外的索引,葉子中存儲主鍵值

一次查詢需要走兩遍查詢

主鍵大小會影響所有索引的大小,如圖所示:

圖片

1.3 聯合索引

Key由多個字段組成,最左匹配原則

一個索引只創建一棵樹按第一列排序

第一列相同按第二列排序

注意 :如果不是按照最左開始查找,無法使用索引,不能跳過中間列,某列使用范圍查詢后面的列不能使用索引。

2、索引的優化分析

2.1 存儲空間

索引文件大小是由字段大小、頁內節點數目、樹的層數

2.2 主鍵的選擇

自增主鍵,順序寫入,效率高

隨機主鍵,結點分裂、數據移動

自增主鍵寫入磁盤利用率高,每次查詢走兩級索引

隨機主鍵寫入磁盤利用率低,每次查詢走兩級索引

業務主鍵:寫入查詢磁盤利用率都高,可以使用一級索引

聯合主鍵:影響索引大小,不易維護,不建議使用

2.3 聯合主鍵

按索引區分度排序,并且覆蓋索引;

2.4 字符串索引

字符是按照字節對比的,設置的時候注意控制長度;

不支持開頭的%模糊查詢,只能全表掃描;

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲
    +關注

    關注

    13

    文章

    4458

    瀏覽量

    86855
  • MySQL
    +關注

    關注

    1

    文章

    840

    瀏覽量

    27290
收藏 人收藏

    評論

    相關推薦

    深度剖析MySQL/InnoDB的并發控制和加鎖技術

    本文主要是針對MySQL/InnoDB的并發控制和加鎖技術做一個比較深入的剖析,并且對其中涉及到的重要的概念,如多版本并發控制(MVCC),臟讀(dirty read),幻讀(phantom
    的頭像 發表于 10-29 14:36 ?2268次閱讀
    深度<b class='flag-5'>剖析</b><b class='flag-5'>MySQL</b>/<b class='flag-5'>InnoDB</b>的并發控制和加鎖技術

    詳解Mysql數據庫InnoDB存儲引擎事務

    關于Mysql數據庫InnoDB存儲引擎事務的一點理解
    發表于 05-13 10:11

    InnoDB鎖的特點和狀態查詢

    MySQL探秘(五)InnoDB鎖的類型和狀態查詢
    發表于 08-07 11:45

    分布式MySQLInnoDB cluster

    分布式MySQL——InnoDB cluster和性能測試
    發表于 04-15 08:43

    MySQL存儲引擎簡析

    MySQL存儲引擎InnoDB??InnoDB存儲文件有兩個,后綴名分別是.frm和.idb,其中.frm是表的定義文件,而.idb是數
    發表于 09-06 06:07

    MySQL存儲引擎中MyISAM與InnoDB優劣勢比較分析

    使用MySQL當然會接觸到MySQL存儲引擎,在新建數據庫和新建數據表的時候都會看到。
    的頭像 發表于 07-18 16:00 ?2783次閱讀
    <b class='flag-5'>MySQL</b><b class='flag-5'>存儲</b>引擎中MyISAM與<b class='flag-5'>InnoDB</b>優劣勢比較分析

    關于mysql存儲引擎你知道多少

    Mysql中用的最多的兩種存儲引擎就是MyISAM和InnDB,其中MyISAM是5.1版本之前的默認存儲引擎,InnoDB是5.1版本之后的默認
    發表于 08-23 10:52 ?914次閱讀

    最有用的mysql問答

    、壓縮、空間函數等,但是不支持事務和行級鎖,所以一般用于有大量查詢少量插入的場景來使用,而且myisam不支持外鍵,并且索引和數據是分開存儲的。 innodb是基于聚簇索引建立的,和myisam相反它支持事務、外鍵,并且通過MVCC來支持高并發,索引和數據
    的頭像 發表于 09-30 17:43 ?1801次閱讀
    最有用的<b class='flag-5'>mysql</b>問答

    MySQL存儲引擎完成更新語句執行的方法

    首先肯定是我們的系統通過一個數據庫連接發送到了MySQL,然后肯定會經過SQL接口、解析器、優化器、執行器幾個環節,解析SQL語句,生成執行計劃,接著去由執行器負責這個計劃的執行,調用InnoDB
    的頭像 發表于 10-21 10:40 ?2163次閱讀
    <b class='flag-5'>MySQL</b><b class='flag-5'>存儲</b>引擎完成更新語句執行的方法

    關于InnoDB的內存結構及原理詳解

    除此之外還聊了一下MySQLInnoDB的日志,和兩次寫,總的來說算是一個入門級別的介紹,這篇文章就來詳細介紹一下InnoDB的內存結構。
    的頭像 發表于 04-16 16:15 ?2906次閱讀
    關于<b class='flag-5'>InnoDB</b>的內存結構及原理詳解

    MySQL中的redo log是什么

    時,InnoDB存儲引擎會使用redo log恢復數據,保證數據的持久性與完整性。 一篇中阿星講過,MySQL中數據是以頁為單位,你查詢一條
    的頭像 發表于 09-14 09:40 ?2163次閱讀

    innodb究竟是如何存數據的

    前言如果你使用過mysql數據庫,對它的存儲引擎:innodb,一定不會感到陌生。 眾所周知,在mysql5以前,默認的存儲引擎是:mysl
    的頭像 發表于 10-09 15:41 ?1473次閱讀
    <b class='flag-5'>innodb</b>究竟是如何存數據的

    MySQL5.6 InnoDB支持全文檢索

    在早期的 MySQL 中,InnoDB 并不支持全文檢索技術,從 MySQL 5.6 開始,InnoDB 開始支持全文檢索。
    的頭像 發表于 11-12 15:14 ?1579次閱讀

    剖析MySQL InnoDB存儲原理(下)

    一、InnoDB存儲引擎內存管理 1.1 概念: Buffer Pool:預分配的內存池; Page:Buffer Pool的最小單位; Free list:空閑Page組成的鏈表;
    的頭像 發表于 02-15 15:47 ?532次閱讀
    <b class='flag-5'>剖析</b><b class='flag-5'>MySQL</b> <b class='flag-5'>InnoDB</b><b class='flag-5'>存儲</b>原理(下)

    MySQL中的InnoDB是什么?

    有許多強大的MySQL存儲引擎可供我們使用,而InnoDB無疑是最受歡迎的存儲引擎之一。它高度可靠和高效,因此它成為5.5版本以后所有MySQL
    的頭像 發表于 04-13 09:09 ?867次閱讀
    主站蜘蛛池模板: 广东毛片 | 91破处视频| 四虎国产精品免费视 | 欧美性妇 | 尤物蜜芽福利国产污在线观看 | 亚洲福利视频网址 | 人人干天天操 | 亚洲欧洲色天使日韩精品 | 男女一进一出无遮挡黄 | 五月婷婷综合色 | 女人张开腿 让男人桶视频 女人张开腿等男人桶免费视频 | 诱人的老师bd高清日本在线观看 | 国产成人精品视频一区二区不卡 | 男操女免费视频 | 欧美视频三区 | 亚洲五月激情 | 狠狠色婷婷丁香综合久久韩国 | 永久福利盒子日韩日韩免费看 | 精品国产香港三级 | 人人看人人澡 | 在线播放免费 | 天堂在线网 | 天天摸夜班摸天天碰 | 在线观看亚洲成人 | 91中文字幕在线视频 | 午夜视频1000部免费看 | 888xxxx免费视频 | 亚洲伊人tv综合网色 | 国产最好的精华液网站 | 亚洲国产人久久久成人精品网站 | 色小视频 | 涩涩高清无乱码在线观看 | 美女扒开尿口给男人桶动态图 | 亚洲爱婷婷色婷婷五月 | 4hu影院最新地址www | 加勒比综合 | 欧美一区二区三区男人的天堂 | fenfencao在线观看免费视频 | 色宅男午夜电影在线观看 | 日本乱妇| 色狠狠综合 |