MySQL的數據目錄

導讀:

? 根據前面的所學知識,我們知道了InnoDB存儲引擎存儲數據的數據結構、存儲過程,而被組織好的數據則被存儲在操作系統的磁盤上,當我們在對表數據進行增刪改查時,其實就是InnoDB存儲引擎與磁盤的交互。

? 此外,操作系統中對磁盤的管理歸屬于文件系統,所以我們也可將數據增刪改查的過程稱為是InnoDB存儲引擎與文件系統的交互。之前我們只是通過工具對數據庫中的數據進行操作,并沒有真正看到過數據庫、表等存儲文件,接下來我們就來了解一下在文件系統中,MySQL是以什么樣的形式對數據進行的存儲?保存了哪些數據?…

一、數據目錄

? MySQL服務器程序在啟動時會在文件系統的某個目錄下加載一些文件,之后在運行過程中產生的數據也都會存儲到這個目錄下的某些文件中,這個目錄就稱為數據目錄。

注:數據目錄是用來存儲MySQL運行過程中產生的數據,和安裝目錄不同,一定要區分開。

? 數據目錄對應的系統變量為 datadir,我們可以通過以下語句查詢自己本地計算機的數據目錄路徑:

二、數據目錄的結構

? MySQL運行過程中的產生的數據庫、表、視圖、觸發器等用戶數據都會被存儲到數據目錄下,此外還有一些其本身所攜帶的數據。

1、數據庫

? 在創建數據庫時,在文件系統中會產生如下變化:

  • 在數據目錄下,創建一個和數據庫名同名的文件夾。
  • 在創建的數據庫同名文件夾下創建一個名為 db.opt 的文件,這個文件中包含了該數據庫的各種屬性,比方說該數據庫的字符集和比較規則是個啥。

? 以下是我本地創建的一個 blog 數據庫的存儲形式:

2、表

? 文件系統中存儲的表數據分為兩部分:

  • 表結構:用于存儲表的基本屬性,比如表名、字符集、比較規則等,文件名以".frm"為后綴。
  • 表數據:InnoDB以數據頁為基本單位組織、存儲數據,為了更好的管理這些頁,設計InnoDB的大叔們提出了一個表空間或者文件空間(英文名:table space 或者 file space)的概念,這個表空間是一個抽象的概念,它可以對應文件系統上一個或多個真實文件(不同表空間對應的文件數量可能不同)。每一個表空間可以被劃分為很多很多很多個頁,我們的表數據就存放在某個表空間下的某些頁里。設計InnoDB的大叔將表空間劃分為幾種不同的類型:
    • 系統表空間(system tablespace):從 MySQL5.5.7 到 MySQL5.6.6 之間的各個版本中,MySQL表中的數據都會被默認存儲到這個系統表空間。
    • 獨立表空間(file-per-table tablespace):在 MySQL5.6.6 以及之后的版本中,InnoDB并不會默認的把各個表的數據存儲到系統表空間中,而是為每一個表建立一個獨立表空間,也就是說我們創建了多少個表,就有多少個獨立表空間。

?注1:系統表空間可以對應文件系統上一個或多個實際的文件,默認情況下,InnoDB會在數據目錄下創建一個名為ibdata1、大小為12M的自擴展文件。

注2:每個表的獨立表空間被存儲在數據目錄下同名數據庫文件夾下,文件名與表名一致,以".ibd"為后綴。

3、視圖

? MySQL中的視圖其實是虛擬的表,也就是某個查詢語句的一個別名而已,所以在存儲視圖的時候是不需要存儲真實的數據的,只需要把它的結構存儲起來就行了。和表一樣,描述視圖結構的文件也會被存儲到所屬數據庫對應的子目錄下邊,只會存儲一個視圖名.frm的文件。

4、其他文件

除了上述用戶數據外,數據目錄下還包括為了更好運行程序的一些額外文件,主要包括這幾種類型的文件:

  • 服務器進程文件:我們知道每運行一個MySQL服務器程序,都意味著啟動一個進程。MySQL服務器會把自己的進程ID寫入到一個文件中。
  • 服務器日志文件:在服務器運行過程中,會產生各種各樣的日志,比如常規的查詢日志、錯誤日志、二進制日志、redo日志等。
  • 默認/自動生成的SSL和RSA證書和密鑰文件:主要是為了客戶端和服務器安全通信而創建的一些文件。

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

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

相關文章

Web前端開發: :has功能性偽類選擇器

:has功能性偽類選擇器::has() 是 CSS 中的一個功能性偽類選擇器,它允許開發者根據元素的后代元素、兄弟元素或后續元素的存在或狀態來選擇目標元素。它本質上是一個“父選擇器”或“關系選擇器”,解決了 CSS 長期以來無法根據子元素反向選擇父元素的痛點…

深度學習8(梯度下降算法改進2)

目錄 RMSProp 算法 Adam算法 學習率衰減 RMSProp 算法 RMSProp(Root Mean Square Prop)算法是在對梯度進行指數加權平均的基礎上,引入平方和平方根。 其中e是一個非常小的數,防止分母太小導致不穩定,當 dw 或 db 較大時,(du)2,(db)2會較大&…

JAVA面試寶典 -《網絡編程核心:NIO 與 Netty 線程模型詳解》

網絡編程核心:NIO 與 Netty 線程模型詳解 文章目錄網絡編程核心:NIO 與 Netty 線程模型詳解一、傳統 BIO 模型:排隊買奶茶的阻塞模式 🥤1.1 專業解釋1.2 簡單點比喻1.3 簡單示例二、NIO 模型:智能叫號餐廳系統 &#x…

藍橋杯 第十六屆(2025)真題思路復盤解析

本文以洛谷平臺所提供的題目描述及評測數據為基礎進行講解。 前言:這是本人的藍橋杯試卷,大概排省一前40%的位置,實際上這屆題目偏難,我沒有做出太多的有效得分。我把當時的思路和現在學習的思路都復盤進來,希望給大家…

蘭頓螞蟻路徑lua測試

蘭頓螞蟻local p0 local x,y,z0,7,0 local function add() local result,id Block:getBlockID(x,y,z)if id1 thenBlock:destroyBlock(x,y,z,false) pp90 elseBlock:setBlockAll(x,y,z,1,0) pp-90 end x,zx-math.floor(0.5math.sin(math.rad(p))),z-math.floor(0.5math.cos(m…

【Axure RP】什么是Axure?Axure可以用來做什么?

【Axure RP】什么是Axure?Axure可以用來做什么? 目錄【Axure RP】什么是Axure?Axure可以用來做什么?Axure RP簡介Axure RP 是什么?Axure RP核心功能和應用場景Axure RP簡介 Axure RP 是什么? Axure RP 是一…

Java項目:基于SSM框架實現的暢玩北海旅游網站管理系統【ssm+B/S架構+源碼+數據庫+畢業論文】

摘 要 現代經濟快節奏發展以及不斷完善升級的信息化技術,讓傳統數據信息的管理升級為軟件存儲,歸納,集中處理數據信息的管理方式。本暢玩北海旅游網站就是在這樣的大環境下誕生,其可以幫助管理者在短時間內處理完畢龐大的數據信息…

NuxtJS中網絡請求模塊的封裝與最佳實戰

在網絡開發中,封裝一個簡潔、高效的網絡請求模塊對于項目的可維護性和擴展性至關重要。本文將詳細介紹如何在NuxtJS中封裝一個通用的網絡請求模塊,并結合最佳實踐來說明如何使用它來進行網絡請求。良好的代碼結構和封裝,不但結構清晰還能夠大…

云歸子批量混剪軟件批量剪輯軟件批量分割視頻更新記錄

www.yunguizi.com 優化顯卡硬件加速配置 ? 優化 2025年07月07日 版本 v1.1.6 優化顯卡硬件加速配置 修復了一些重要內容 🐛 修復 2025年07月06日 版本 v1.1.6 修復了一些重要內容 重構讀寫機制 ? 優化 2025年07月06日 版本 v1.1.6 優化了一些重要內容;…

SpringBoot校園外賣服務系統設計與實現源碼

概述 基于SpringBoot開發的校園外賣服務系統,實現了從外賣管理到訂單處理的全流程數字化解決方案,包含外賣管理、訂單處理、用戶管理等全方位功能。 主要內容 核心功能模塊: ??個人信息管理??: 修改密碼個人信息修改 ??…

東軟8位MCU低功耗調試總結

簡介主控選用8位ES7P7021,應用于磁吸無線充電場景,有一個雙向C口(IP5219),MCU控制電量燈顯示,通過IIC控制C口的降額,插入TYPE-C線之后有一個外部中斷信號,觸發MCU喚醒,開…

什么是 3D 文件?

3D 文件是 3D 對象的數字表示形式,可以在計算機輔助設計 (CAD) 軟件中創建或編輯。它們包含有關物體的形狀、大小和結構的信息,對 3D 打印過程至關重要。3D 文件格式允許在不同的程序和打印機之間交換 3D 模型,并確定模…

語言模型 RLHF 實踐指南(一):策略網絡、價值網絡與 PPO 損失函數

在使用 Proximal Policy Optimization(PPO)對語言模型進行強化學習微調(如 RLHF)時,大家經常會問: 策略網絡的動作概率是怎么來的?價值網絡的得分是如何計算的?獎勵從哪里來&#xf…

日常--記一次gitlab Runner配置與CI/CD環境搭建流程

文章目錄一、前言二、相關知識1.相關定義1.什么是 CI?2.什么是 CD?2.CI/CD 構建塊與工具鏈3.為什么要使用 CI/CD?三、準備四、實現1.Runner安裝與配置1.更新源2.安裝Runner3.注冊Runner4.啟動Runner5.查看Runner信息2.CI/CD流程測試1.CI/CD構…

東方仙盟AI數據中間件使用教程:開啟數據交互與自動化應用新時代——仙盟創夢IDE

一、啟動未來之窗AI 二、初始化數據接口三、便捷接口數據進入東方仙盟獲取接口標準四、同步參數仙界界牌,冥界界牌,仙盟界牌 五、開始同步六、東方仙盟青云劍魂架構在當今數字化浪潮下,數據的采集、處理與傳輸成為眾多應用場景的核心需求。而…

Rust 仿射類型(Affine Types)

在 Rust 中,仿射類型(Affine Types) 是所有權系統的理論基礎,它規定了每個值有且僅有一次使用機會。這與線性類型(必須恰好使用一次)有所不同,允許值未被使用就被丟棄。Rust 中的仿射類型核心特…

python庫 arrow 庫的各種案例的使用詳解(更人性化的日期時間處理)

文章目錄 一、arrow概述1.1 arrow介紹1.2 安裝 arrow1.3 注意事項二、基本使用2.1 創建 Arrow 對象2.2 格式化輸出2.3 時間運算三、高級功能3.1 時區處理3.2 時間范圍3.3 時間間隔四、實際應用案例4.1 日志時間處理4.2 會議時間提醒4.3 國際化時間顯示5. Arrow 與 datetime 互操…

window 服務器上部署前端靜態資源以及nginx 配置

最近搞了一臺境外服務器 這種境外服務器是不可以配置域名的 但是可以使用ip訪問 但是如果需要 配置 需要下載nginx nginx: download 我這個是windows 的 服務器 所以下載windows 的nginx 下載完成以后 這個里面的html 文件 就是前端項目 里面必須要有index.html文件 部署…

行業實踐案例:醫療行業數據治理的挑戰與突破

“醫療數據不僅是資源,更關乎生命。” ——醫療行業的數據治理,是合規、安全、質量與智能化的多重挑戰。 ?? 本文目錄 為什么醫療行業亟需數據治理? 醫療行業數據治理的獨特挑戰 醫療數據治理體系設計原則 關鍵能力模塊與實踐案例 工具選型與落地建議 總結與下一步 1?? …

單細胞轉錄組學和空間轉錄組學數據的整合方法

文章目錄問題1:現有技術是否可以拿取固定數目的細胞進行組合形成spot問題2:是否有關于這方面的研究問題3:相關論文推薦一、細胞反卷積的核心目標與挑戰二、單細胞與空間轉錄組數據的整合方法分類1. 概率型方法(Probabilistic-base…