MySQL-02-InnoDB存儲引擎

? ? ? ?實際的業務系統開發中,使用MySQL數據庫,我們使用最多的當然是支持事務并發的InnoDB存儲引擎的這種表結構,下面我們介紹下InnoDB存儲引擎相關的知識點。

1-Innodb體系架構

? ? ?InnoDB存儲引擎有多個內存塊,可以認為這些內存塊組成了一個大的內存池,負責如下工作:
(1)維護所有進程/線程需要訪問的多個內部數據結構
(2)緩存磁盤上的數據,方便快速的讀取,同時在對磁盤文件的數據修改之前在這里緩存
(3)重做日志(redo log)緩沖

? ? ? ?后臺線程的主要作用是負責刷新內存池中的數據,保證緩沖池中的內存緩存是最近的數據。此外將已經修改的數據文件刷新到磁盤文件,同時保證在數據庫發生異常的情況下InnoDB能恢復到正常運行狀態。

? ? ? ?Master thread 是一個非常核心的后臺線程,主要負責將緩沖池中的數據異步刷新到磁盤,保證數據的一致性,包括臟頁的刷新、合并插入緩沖(insert buffer)、undo頁的回收。

? ? ? IO Thread InnoDB存儲引擎大量使用了AIO來處理寫IO請求,這樣可以極大的提高數據庫的性能。而IO thread工作主要負責這些IO請求的回調(call back)處理。

2-Innodb表

2.1-索引組織表

? ? ? ? 在InnoDB存儲引擎中,表都是根據主鍵順序組織存放的,這種存儲方式的表稱為索引組織表(index organized table)。在InnoDB存儲引擎表中,每張表都有個主鍵(Primary Key),如果在創建表時沒有顯示地定義主鍵,則InnoDB存儲引擎會安裝如下方式選擇或者創建主鍵。
(1)首先判斷表中是否有唯一索引,如果有,則該列即為主鍵
(2)如果不符合上述情況,InnoDB存儲引擎自動創建一個6字節大小的指針
當表中有多個非空唯一索引時,InnoDB存儲引擎將選擇第一個定義為非空唯一索引為主鍵。主鍵的選擇是根據定義索引的順序,而不是建表時列的順序。

2.2-InnoDB邏輯存儲結構

? ? ? ? ? 所有數據都被邏輯地存放在一個空間中,稱之為表空間(tablespace),表空間又是由段(segment)、區(extent)、頁(page)組成。頁在一些文檔中頁稱之為塊(block)。

共享表空間

? ? ? ?Innodb 將存儲的數據按照表空間(tablespace)進行存放,默認配置下,會有一個初始大小10M,名為:ibdata1的文件,這就是默認的表空間文件。

show variables like 'innodb_data_file_path';//查看共享表空間
生成文件默認是在data目錄下一個叫ibdata1的文件

當然也可以多路徑設置表空間:
innodb_data_file_path = /data1/db1/ibdata1:100M:autoextend; /data2/db2/ibdata2:100M:autoextend
放在不同的磁盤,可以平均磁盤負載,提高數據庫性能。

獨立表空間

show variables like 'innodb_file_per_table'; ?//mysql默認5.6.7后開啟
所在位置:在對應表所在的目錄 ?表名.ibd 文件
記錄數據:獨立的表空間,僅存儲該表的:數據,索引和插入緩沖BITMAP等信息。其余信息仍存儲在默認表空間。

段:常見的段有數據段、索引段、回滾段等。

區:區是由連續的頁組成的空間,在任何情況下每個區的大小都是1MB。為了保證區中頁的連續性,InnoDB存儲引擎一次從磁盤申請4-5個區。在默認的情況下,InnoDB存儲引擎頁的大小為16KB,即一個區一共有64個連續頁。區是InnoDB存儲引擎空間申請的最小單位。

頁:頁是InnoDB磁盤管理的最小單位。默認是16K。頁是InnoDB訪問的最小單位。
show variables like 'innodb_page_size'; ?innodb_page_size=16384(1024*16)
show variables like 'innodb_version';//查看InnoDB的版本號

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166036.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166036.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166036.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

qgis添加arcgis的mapserver

左側瀏覽器-ArcGIS地圖服務器-右鍵-新建連接 Folder: / 展開-雙擊圖層即可

oracle 表樹形結構查詢遞歸查詢

簡介: WITH RECURSIVE 是一種在關系型數據庫中處理遞歸查詢的語法。 舉例: 假設我們有一個樹形結構數據表 tree_table, 包含節點的 ID、父節點的 ID 和節點名稱等字段。 示例表數據: --------------- | id | pid | name | ----…

物聯網AI MicroPython學習之語法 I2S音頻總線接口

學物聯網,來萬物簡單IoT物聯網!! I2S 介紹 模塊功能: I2S音頻總線驅動模塊 接口說明 I2S - 構建I2S對象 函數原型:I2S(id, sck, ws, sd, mode, bits, format, rate, ibuf)參數說明: 參數類型必選參數&#xff1f…

關于接口測試自動化的總結與思考!

序 近期看到阿里云性能測試 PTS 接口測試開啟免費公測,本著以和大家交流如何實現高效的接口測試為出發點,本文包含了我在接口測試領域的一些方法和心得,希望大家一起討論和分享,內容包括但不僅限于: 服務端接口測試介…

Vatee萬騰的科技冒險:vatee創新力量的前沿發現

在當今飛速發展的科技潮流中,Vatee萬騰以其獨特的創新力量成為前沿的引領者。這場科技冒險不僅僅是技術的迭代,更是一次前所未有的前沿發現之旅,讓我們一同深入探索Vatee萬騰的科技冒險,感受vatee創新力量的前沿奇跡。 Vatee萬騰將…

【Thumbnailator】圖片壓縮、水印、格式修改一網打盡

前言: 對于javaweb服務端開發人員,圖片資源的管理總是繞不開的一環。很多網站上都會提供上傳圖片這個功能,而現代數碼設備拍攝出來的都是高清圖片,分辨率很高,占用的空間也很大。物理存儲的問題還算容易解決&#xff0…

機器學習---最大似然估計和貝葉斯參數估計

1. 估計 貝葉斯框架下的數據收集,在以下條件下我們可以設計一個可選擇的分類器 : P(wi) (先驗);P(x | wi) (類條件密度) 但是。我們很少能夠完整的得到這些信息! 從一個傳統的樣本中設計一個分類器: ①先驗估計不成問題 ②對類條件密度…

蘋果企業簽名失敗常見的問題

蘋果企業簽名失敗的常見問題主要有以下幾種: 證書過期或無效:蘋果開發者需要定期更新他們的簽名證書,以確保其有效性。一旦證書過期,相關應用將無法正常工作。證書不匹配:如果使用的證書與應用程序的Bundle ID不匹配&…

WT588F02B-8S語音芯片支持PWM音頻輸出的特征優勢及應用前景

隨著科技的飛速發展,語音芯片作為人機交互的核心組件,在各個領域的應用越來越廣泛。而在這些語音芯片中,支持PWM音頻輸出的特性日益受到關注。本文將探討語音芯片支持PWM音頻輸出的特征優勢以及其在各個領域的應用前景。 一、特征優勢 1、高…

git本地賬戶如何從一臺電腦遷移到另外一臺

為了表述方便,我們此處用舊電腦、新電腦指代。 在新電腦上安裝git 例如,我舊電腦上安裝的git版本是2.33.1版本,新電腦安裝git的版本是2.43.0,這不妨礙遷移。 將git的全局配置文件從舊電腦拷貝到新電腦 Git的全局配置文件&…

“關愛零距離.情暖老人心”主題活動

為提高社區老年人的生活質量,促進鄰里間的互動與友誼,以及弘揚尊老愛幼的社區精神,11月21日山東省濰坊市金陽公益服務中心、重慶市潼南區同悅社會工作服務中心在潼南區桂林街道東風社區共同在潼南區桂林街道東風社區舉辦了“關愛零距離.情暖老…

22款奔馳S400L升級原廠360全景影像 高清環繞 無死角

360全景影像影像系統提升行車時的便利,不管是新手或是老司機都將是一個不錯的配置,無論是在倒車,挪車以及拐彎轉角的時候都能及時關注車輛所處的環境狀況,避免盲區事故發生,提升行車出入安全性。 360全景影像包含&…

自學編程,用好這幾個網站就夠了!

如果你要自學編程,一定要收藏好這7個網站,上面免費的優質教程很多,完全可以省去你上萬塊錢的學費! 話不多說,直接上干貨! 第一個,W3school 一個主打圖文教程的網站,不管是前端開發…

怎樣將帶表格的圖片批量合并轉換成word表格?

注:本功能適用于V3.66以上版本的金鳴表格文字識別大師 在日常的辦公場景中,我們常常會遇到需要將帶有表格類的圖片識別成excel的需求。我們知道,普通的OCR軟件并不具備識別中文表格的功能,即使有,效果也強差人意&…

JSP:MVC

Web應用 一個好的Web應用: 功能完善 易于實現和維護 易于擴展等 的體系結構 一個Web應用通常分為兩個部分: m 1. 由界面設計人員完成的 表示層 (主要做網頁界面設計) m 2. 由程序設計人員實現的 行為層 (主要完成本…

SELinux零知識學習二十五、SELinux策略語言之類型強制(10)

接前一篇文章:SELinux零知識學習二十四、SELinux策略語言之類型強制(9) 二、SELinux策略語言之類型強制 3. 訪問向量規則 AV規則就是按照對客體類別的訪問許可指定具體含義的規則,SELinux策略語言目前支持四類AV規則: allow:表示允許主體對客體執行允許的操作。neveral…

2015年7月8日 Go生態洞察:Go、開源與社區

🌷🍁 博主貓頭虎(🐅🐾)帶您 Go to New World?🍁 🦄 博客首頁——🐅🐾貓頭虎的博客🎐 🐳 《面試題大全專欄》 🦕 文章圖文…

C#面試題3

1.請解釋一下C#中的并發編程和線程安全性。 并發編程是指在多線程環境下編寫代碼以實現并發執行的能力。C#提供了一些機制來支持并發編程,如線程、任務和并行循環等。線程安全性是指在多線程環境下,代碼能夠正確地處理共享數據并保持一致性。線程安全的代…

基于springboot實現大學生就業服務平臺系統項目【項目源碼】計算機畢業設計

基于springboot實現大學生就業服務平臺系統演示 Java技術 Java是由SUN公司推出,該公司于2010年被oracle公司收購。Java本是印度尼西亞的一個叫做爪洼島的英文名稱,也因此得來java是一杯正冒著熱氣咖啡的標識。Java語言在移動互聯網的大背景下具備了顯著…

企業必看的大數據安全極速傳輸解決方案

在這個大數據時代,企業在享受大數據帶來的便利同時,也面臨著巨大的挑戰,其中最主要的問題就是數據安全方面和傳輸方面,為了更好地滿足企業大數據傳輸的需求,小編將深入分析企業對于大數據傳輸面臨的挑戰和風險以及大數…