[MySQL--進階篇]存儲引擎的體系結構、簡介、特點、選擇

前言

在這里插入圖片描述

?Hello!這里是歐_aita的博客。
?今日語錄:不要在乎別人怎么看你,因為他們根本就沒有時間,他們只關心他們自己。
?個人主頁:歐_aita
ψ(._. )>?個人專欄:
數據結構與算法
MySQL數據庫

在這里插入圖片描述

在這里插入圖片描述

存儲引擎

  • 前言
  • MySQL體系結構📕
  • 存儲引擎簡介📕
    • 在創建表時,指定存儲引擎
    • 查看當前數據庫支持的存儲引擎
  • 存儲引擎特點📕
    • InnoDB
      • 邏輯存儲結構
    • MyISAM
    • Memory
    • 區別
  • 存儲引擎選擇📕

MySQL體系結構📕

在這里插入圖片描述

  • 連接層 (連接池)最上層是一些客戶端和鏈接服務,主要完成類似于連接處理、授權認證、及相關的安全方案。服務器也會為安全接入的每個客戶驗證它所具有的操作權限。
  • 服務層 (SQL接口 解析器 查詢優化器 緩存)第二層架構主要完成大多數的核心服務功能,如SQL接口,并完成存儲的查詢,SQL的分析與優化,部分內置函數的執行。所有跨存儲引擎的功能也在這一層實現,如 過程、函數等。
  • 引擎層 (可插拔存儲引擎)存儲引擎真正的負責了MySQL中數據的存儲和提取,服務器通過API和存儲引擎進行通信。不同的存儲引擎具有不同的功能,這樣我們可以根據自己的需要,來選取合適的存儲引擎。
  • 存儲層 (磁盤)主要是將數據存儲在文件系統之上,并完成與存儲引擎的交互。

存儲引擎簡介📕

存儲引擎就是存儲數據、建立索引、更新/查詢數據等技術的實現技術的實現方式。存儲引擎是基于表的,而不是基于庫的,所以存儲引擎也可被稱為表類型。

在創建表時,指定存儲引擎

在5.5版本之后,默認的存儲引擎時InnoDB

CREATE TABLE 表名(字段1 字段1類型 [COMMENT 字段1注釋],......字段n 字段n類型 [COMMENT 字段n注釋]
)ENGINE = INNODB [COMMENT 表注釋];

查看當前數據庫支持的存儲引擎

SHOW ENGINES;

在這里插入圖片描述

存儲引擎特點📕

InnoDB

  • 介紹

InnoDB是一種兼顧高可靠性和高性能的通用存儲引擎,在MySQL 5.5之后,InnoDB是默認的MySQL存儲引擎。

  • 特點

DML操作遵循ACID模型,支持事務
行級鎖,提高并發訪問性能;
支持外鍵FOREIGN KEY約束,保證數據的完整性和正確性;

  • 文件

xxx.ibd:xxx代表的是表名,InnoDB引擎的每張表都會對應這樣一個表空間文件,存儲該表的表結構(frm、sdi)、數據和索引。
參數:innoDB_file_per_table

在這里插入圖片描述
可以看到表空間文件都是以idb為后綴(前提是創建表的時候默認使用InnoDB存儲引擎)
在這里插入圖片描述
在命令行中可以看到idb文件中的內容。

邏輯存儲結構

在這里插入圖片描述
每個區的空間是固定的(1M),每一頁的空間也是固定的(16K),所以每個區可存儲的頁個數也是固定的(64)。

MyISAM

  • 介紹

MyISAM是MySQL早期的默認存儲引擎。

  • 特點

不支持事務,不支持外鍵
支持表鎖,不支持行鎖
訪問速度快

  • 文件

xxx.sdi:存儲表結構信息
xxx.MYD:存儲數據
xxx.MYI:存儲索引

在sdi文件中放的是json格式語言
可以在json.cn網站翻譯為SQL語言
在這里插入圖片描述

Memory

  • 介紹

Memory引擎的表數據時存儲在內存中的,由于受到硬件問題、或斷電問題的影響,只能將這些表作為臨時表或緩存使用。

  • 特點

內存存放
Hash索引(默認)

  • 文件

xxx.sdi:存儲表結構信息

區別

特點InnoDBMyISAMMemory
存儲限制64TB
事務安全支持--
鎖機制行鎖表鎖表鎖
B+tree索引支持支持支持
Hash索引---
全文索引支持 (5.6版本之后)支持-
空間使用N/A
內存使用中等
批量插入速度
支持外鍵支持--

存儲引擎選擇📕

在選擇存儲引擎時,因該根據應用系統的特點選擇合適的存儲引擎。對于復雜的應用系統,還可以根據實際情況選擇多種存儲引擎進行組合。

  • InnoDB

是MySQL的默認存儲引擎支持事務、外鍵。如果應用對事務的完整性有比較高的要求,在并發條件下要求數據的一致性,數據操作除了插入和查詢之外,還包含很多更新、刪除操作,那么InnoDB存儲引擎是比較合適的選擇。

  • MyISAM

如果應用是以讀操作和插入操作為主,只有很少的更新和刪除操作,并且對事務的完整性、并發性要求不是很高,那么選擇這個存儲引擎是非常合適的。

  • Memory

將所有的數據保存在內存中,訪問速度快,通常用于臨時表及緩存。Memory的缺陷就是對表的大小有限制,太大的表無法緩存在內存中,而且無法保障數據的安全性。

在這里插入圖片描述

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

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

相關文章

代碼隨想錄算法訓練營第四十一天|343. 整數拆分、96.不同的二叉搜索樹

代碼隨想錄算法訓練營第四十一天|343. 整數拆分、96.不同的二叉搜索樹 整數拆分 343. 整數拆分 文章講解:https://programmercarl.com/0343.%E6%95%B4%E6%95%B0%E6%8B%86%E5%88%86.html 題目鏈接:https://leetcode.cn/problems/integer-break/ 視頻講解…

李宏毅gpt個人記錄

參考: 李宏毅機器學習--self-supervised:BERT、GPT、Auto-encoder-CSDN博客 用無標注資料的任務訓練完模型以后,它本身沒有什么用,GPT 1只能夠把一句話補完,可以把 Self-Supervised Learning 的 Model做微微的調整&am…

32.768KHz時鐘RTC晶振精度PPM值及頻差計算

一個數字電路就像一所城市的交通,晶振的作用就是十字路口的信號燈,因此晶振的品質及其電路應用尤其關鍵。數字電路又像生命體,它的運行就像人身體里的血液流通,它不是由單一的某個器件或器件單元構成,而是由多個器件及…

【Spring Boot 源碼學習】ApplicationListener 詳解

Spring Boot 源碼學習系列 ApplicationListener 詳解 引言往期內容主要內容1. 初識 ApplicationListener2. 加載 ApplicationListener3. 響應應用程序事件 總結 引言 書接前文《初識 SpringApplication》,我們從 Spring Boot 的啟動類 SpringApplication 上入手&am…

如何查詢川菜食材配料的API接口

在當今的美食文化中,菜譜不只是一張簡單的食譜,更是了解美食文化和飲食知識的重要途徑。然而,若沒有準確的食材配料,烹制出的每道菜品都將難以達到完美的味道。因此,為了更好地滿足人們對于菜譜和食譜的需求&#xff0…

C語言習題集(026)

//寫一個函數&#xff0c;輸入一個4位數字&#xff0c;要求輸出這4個 //數字字符&#xff0c;但每兩個數字間空一個空格。如輸入 //1990&#xff0c;應輸出"1 9 9 0"。 /* */ //解答&#xff1a; #include<stdio.h> void change(int a) { if(a/10!0) { chang…

linux權限管理以及shell

1.shell 1.1什么是shell? shell即外殼&#xff0c;是運行在linux系統上的一個腳本語言&#xff0c;包裹在linux內核的外面。我們常說的linux操作系統實際上是linux內核。我們使用的所有指令都是一個個程序&#xff0c;而shell指令就是一個將我們用戶的操作翻譯給linux內核的程…

軟件設計之組合模式

組合模式&#xff1a;將對象組合成樹形結構。 案例&#xff1a;公司管理。一個公司可以分總公司和分公司&#xff0c;無論是總公司還是分公司都有自己的部門&#xff0c;如人力資源管理部門、財務部門。分公司可以建立自己在不同地域的辦事處。請使用組合模式打印出某個公司的…

SpringSecurity6 | 登陸后的跳轉

SpringSecurity6 | 自定義認證規則 ?作者簡介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;熱愛Java后端開發者&#xff0c;一個想要與大家共同進步的男人&#x1f609;&#x1f609; &#x1f34e;個人主頁&#xff1a;Leo的博客 &#x1f49e;當前專欄&#xff1a; Ja…

第九天:信息打點-CDN繞過篇amp;漏洞回鏈amp;接口探針amp;全網掃描amp;反向郵件

信息打點-CDN繞過篇 cdn繞過文章&#xff1a;https://www.cnblogs.com/qiudabai/p/9763739.html 一、CDN-知識點 1、常見訪問過程 1、沒有CDN情況下傳統訪問&#xff1a;用戶訪問域名-解析服務器IP–>訪問目標主機 2.普通CDN&#xff1a;用戶訪問域名–>CDN節點–>…

面向LLM的App架構——業務維度

這是兩篇面向LLM的大前端架構的第一篇&#xff0c;主要寫我對LLM業務的認知以及由此推演出的大前端架構。由于我是客戶端出身&#xff0c;所以主要以客戶端角度來描述&#xff0c;并不影響對前端的適用性。 對LLM的認知 基于Google對AGI的論文&#xff0c;AGI或者LLM一定會朝…

淺談ClickHouse性能監控與調優

ClickHouse性能監控與調優 ClickHouse是一個高性能的列式數據庫管理系統&#xff0c;適用于實時分析和大數據處理。本文將詳細講解如何監控ClickHouse的性能指標、日志和查詢統計信息&#xff0c;以及如何進行故障排查和性能調優。 一、監控性能指標 1. 系統表 ClickHouse提…

網絡層重點協議——IP協議詳解

??????今天給大家分享的是網絡層的重點協議——IP協議。 清風的CSDN博客 &#x1f6e9;?&#x1f6e9;?&#x1f6e9;?希望我的文章能對你有所幫助&#xff0c;有不足的地方還請各位看官多多指教&#xff0c;大家一起學習交流&#xff01; ??????動動你們發財的…

阿里內部教程Jmeter 性能測試常用圖表、服務器資源監控

性能測試常用圖表 插件安裝 步驟 1&#xff1a;安裝插件管理器 在 Jmeter 官網上下載插件管理器 Plugins-manager-1.3.jar將 jar 包放入到 lib\ext 目錄下重啟 Jmeter&#xff0c;可以在選項下看到 Plugins Manager 選項 步驟 2&#xff1a;安裝指定的插件 打開 Plugins Ma…

JVM虛擬機系統性學習-運行時數據區(堆)

運行時數據區 JVM 由三部分組成&#xff1a;類加載系統、運行時數據區、執行引擎 下邊講一下運行時數據區中的構成 根據線程的使用情況分為兩類&#xff1a; 線程獨享&#xff08;此區域不需要垃圾回收&#xff09; 虛擬機棧、本地方法棧、程序計數器 線程共享&#xff08;數…

【矩陣】73. 矩陣置零

題目 法1&#xff1a;自己想的笨蛋方法 class Solution {public void setZeroes(int[][] matrix) {Set<Integer> rowSet new HashSet<>();Set<Integer> columnSet new HashSet<>();for (int i 0; i < matrix.length; i) {for (int j 0; j <…

DataGrip常見問題

查詢語句結果沒有輸出在output中 進行如下配置 配置后查詢結果輸出在output中 左側數據庫鏈接信息導航欄被隱藏 以上導航欄被隱藏&#xff0c;按下圖操作調出

【Qt開發流程】之容器類2:使用STL風格迭代器進行遍歷

概述 對于每個容器類&#xff0c;都有兩種stl風格的迭代器類型:一種提供只讀訪問&#xff0c;另一種提供讀寫訪問。應該盡可能使用只讀迭代器&#xff0c;因為它們比讀寫迭代器快。 STL迭代器的API以數組中的指針為模型。例如&#xff0c;操作符將迭代器推進到下一項&#xf…

Java開發工具:IDEA 2023.3(WinMac)中文激活版

IntelliJ IDEA 2023是一款由JetBrains公司出品的集成開發環境&#xff08;IDE&#xff09;&#xff0c;專為程序員設計。它以智能、高效和人性化為主要特點&#xff0c;致力于提高開發人員的生產力&#xff0c;幫助程序員更快、更好地編寫代碼。 在智能功能方面&#xff0c;Int…

Panalog 日志審計系統 sprog_deletevent.php SQL 注入漏洞復現

0x01 產品簡介 Panalog大數據日志審計系統定位于將大數據產品應用于高校、 公安、 政企、 醫療、 金融、 能源等行業之中&#xff0c;針對網絡流量的信息進行日志留存&#xff0c;可對用戶上網行為進行審計&#xff0c;逐漸形成大數據采集、 大數據分析、 大數據整合的工作模式…