MySQL--數據引擎詳解

存儲引擎

MySQL體系結構

連接層:

  • 主要接收客戶端的連接,然后完成一些鏈接的處理,以及認證授權的相關操作和安全方案,還要去檢查是否超過最大連接數等等,比如在連接MySQL服務器時需要輸入用戶名,密碼,輸入之后,連接層需要校驗用戶名與密碼,授權認證之后還需要校驗每一個客戶端所具有的權限:例如可以操作哪些數據庫,哪些表等等

服務層:

  • 絕大部分的核心功能是在服務層完成的,SQL接口,查詢解析器,查詢優化器,查詢緩存,所有跨存儲引擎的功能都是在服務層完成的,如 過程,函數,等

引擎層:

  • 存儲引擎控制的是MySQL中數據的存儲和提取的方式,服務器會通過API與存儲引擎來進行通信,交互。不同的存儲引擎有著不同的功能,用戶可以根據自己的需要,來選擇合適的存儲引擎,索引(index)在存儲引擎層,不同的存儲引擎 索引結構不同。InnoDB引擎是MySQL5.5之后默認的存儲引擎

存儲層:

  • 主要用來存儲數據庫的相關數據,并完成與存儲引擎的交互,這里包含一系列的日志(redo日志,undo日志等等),存儲層的數據是從存儲在磁盤中

存儲引擎概述

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

創建表時,指定存儲引擎的語法:

?-- 查詢建表語句show create table student;?/*CREATE TABLE `student` (`id` int NOT NULL AUTO_INCREMENT COMMENT '學號',`name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',`pwd` varchar(20) NOT NULL DEFAULT '123456' COMMENT '密碼',`sex` varchar(2) NOT NULL DEFAULT '女' COMMENT '性別',`birthday` datetime DEFAULT NULL COMMENT '出生日期',`address` varchar(100) DEFAULT NULL COMMENT '家庭住址',`email` varchar(50) DEFAULT NULL COMMENT '郵箱',PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3*/-- 查詢當前數據庫支持的存儲引擎show engines ;

存儲引擎特點

  • InnoDB

    • InnoDB是一種兼高可靠性與高性能的通用存儲引擎,InnoDB引擎是MySQL5.5之后默認的存儲引擎

  • 特點

    • DML(數據操作語言)遵循ACID模型,支持事務

    • 行級鎖,提高并發訪問性能

    • 支持外鍵foreign key約束,保證數據的完整性與正確性

  • 文件

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

    • 參數:innodb_file_per_table

  • InnoDB

  • MyISAM

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

  • 特點

    • 不支持外鍵,不支持事務

    • 支持表鎖,不支持行鎖

    • 訪問速度快

  • 文件

    • xxx.sdi:存儲表結構信息

    • xxx.MYD:存儲數據

    • xxx.MYI:存儲索引

  • Memory

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

  • 特點

    • 內存存放

    • hash索引

    • 訪問速度快

  • 文件

    • xxx.sdi:存儲表結構信息

三種存儲引擎的區別

重點記憶:InnoDB與MyISAM的三大區別:事務安全,鎖機制,是否支持外鍵

存儲引擎選擇

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

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

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

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

希望對大家有所幫助!

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

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

相關文章

【含文檔+PPT+源碼】基于微信小程序的健康飲食食譜推薦平臺的設計與實現

項目介紹 本課程演示的是一款基于微信小程序的健康飲食食譜推薦平臺的設計與實現,主要針對計算機相關專業的正在做畢設的學生與需要項目實戰練習的 Java 學習者。 1.包含:項目源碼、項目文檔、數據庫腳本、軟件工具等所有資料 2.帶你從零開始部署運行本…

當OA闖入元宇宙:打卡、報銷和會議的未來狂想

引言:虛實共生中的組織基因突變 元宇宙正以虛實共生的形態重構人類協作的底層邏輯。傳統OA系統建立的物理規則——指紋打卡驗證在場性、紙質票據堆砌信任鏈、會議室排期協調時空資源——在元宇宙的數字原野上迎來基因級重組。這場變革不僅是技術工具的迭代&#xf…

解決vscode cmake提示檢測到 #include 錯誤

一、問題 cmake已經包含了動態庫文件,依然提示“檢測到 #include 錯誤。請更新 includePath。” 二、解決方案 Ctrl Shift P進入CPP編輯配置,然后在JSON中加入下面一行: "configurationProvider": "ms-vscode.cmake-tools&…

2024ICPC成都題解

文章目錄 L. Recover Statistics(簽到)J. Grand Prix of Ballance(模擬簽到)A. Arrow a Row(構造)B. Athlete Welcome Ceremony(線性dp)G. Expanding Array(打表結論)I. Good Partitions(線段樹)E. Disrupting Communications(換根dpLCA倍增)K. Magical Set(費用流) 題目鏈接 …

達夢數據庫官方遷移工具SQLark:支持Oracle/MySQL/PostgreSQL遷移至達夢數據庫!

SQLark 百靈連接是一款面向信創應用開發者的數據庫開發和管理工具,由達夢數據歷時三年自主研發,注冊即可免費使用客戶端(官網鏈接www.sqlark.com)。今天,我們將重點介紹SQLark的特色功能之一——數據遷移,該…

映射關系4

好!我明白了!💥 你希望我在你的基礎上,繼續優化 insertPathWithIds,讓它: ? 支持每一級節點的 idPart 是字符串(而不是int)。 ? 結構更清晰,更快拼接。 ? 完全符合C98…

PDF Shaper v15.0

如今對PDF處理的軟件很多都是只是單一的功能。PDF Shaper給你完全不同的體驗,因為PDF Shaper是一款免費的PDF工具集合的軟件。有了PDF Shaper,你以后再也不用下載其他處理PDF的軟件了。PDF Shaper的功能有:合并,分割,加…

【Python爬蟲基礎篇】--4.Selenium入門詳細教程

先解釋:Selenium:n.硒;硒元素 目錄 1.Selenium--簡介 2.Selenium--原理 3.Selenium--環境搭建 4.Selenium--簡單案例 5.Selenium--定位方式 6.Selenium--常用方法 6.1.控制操作 6.2.鼠標操作 6.3.鍵盤操作 6.4.獲取斷言信息 6.5.…

mysql8.0版本部署+日志清理+rsync備份策略

mysql安裝:https://blog.csdn.net/qq_39399966/article/details/120205461 系統:centos7.9 數據庫版本:mysql8.0.28 1.卸載舊的mysql,保證環境純凈 rpm -qa | grep mariadb mariadb-5.... rpm -e --nodeps 軟件 rpm -e --nodeps mariadb-5.…

C#進階學習(十七)PriorityQueue<TElement, TPriority>優先級隊列的介紹

1. PriorityQueue是什么&#xff1f;作用是什么&#xff1f; 定義&#xff1a;PriorityQueue<TElement, TPriority> 是 C# (.NET 6 引入) 中的泛型優先級隊列數據結構。 那么是什么是優先級隊列呢&#xff1f;優先級隊列是一種抽象數據結構&#xff0c;其核心特性是元素按…

如何查看和驗證AWS CloudFront的托管區域ID

在使用AWS Route 53設置DNS記錄時,正確識別CloudFront分發的托管區域ID是至關重要的。本文將詳細介紹幾種查看和驗證CloudFront托管區域ID的方法,特別關注中國區CloudFront的特殊情況。 為什么托管區域ID很重要? 托管區域ID是AWS服務中的一個關鍵標識符。在創建指向CloudF…

kafka整合flume與DStream轉換

一、Kafka整合flume cd /opt/software/flume/conf/ vi flume-kafka.conf a1.sourcesr1 a1.sinksk1 a1.channelsc1 a1.sources.r1.typespooldirt a1.sources.r1.spoolDir/root/flume-kafka a1.sinks.k1.typeorg.apache.flume.sink.kafka.KafkaSink a1.sinks.k1.kafka.to…

網絡通訊【QTcpServer、QTcpSocket、QAbstractSocket】

目錄 QTcpServer class簡單描述成員函數和信號 QTcpSocket Class詳細描述成員函數和信號 QAbstractSocket Class詳細描述成員函數和信號成員函數說明文檔 QT實現服務器和客戶端通訊服務器端&#xff1a;通訊流程原代碼 客戶端通信流程原代碼 QTcpServer class header: #includ…

大模型在腎癌診療全流程中的應用研究報告

目錄 一、引言 1.1 研究背景與意義 1.2 研究目的與方法 1.3 國內外研究現狀 二、大模型預測腎癌術前情況 2.1 基于影像組學的腎癌良惡性及分級預測 2.1.1 MRI 影像組學模型預測腎透明細胞癌分級 2.1.2 CT 影像深度學習模型鑒別腎腫物良惡性及侵襲性 2.2 大模型對手術風…

網絡原理 - 11(HTTP/HTTPS - 2 - 請求)

目錄 HTTP 請求&#xff08;Request&#xff09; 認識 URL URL 基本格式 關于 URL encode 認識方法&#xff08;method&#xff09; 1. GET 方法 2. POST 方法 認識請求“報頭”&#xff08;header&#xff09; Host Content-Length Content-Type User-Agent&…

實現MySQL高可用性:從原理到實踐

目錄 一、概述 1.什么是MySQL高可用 2.方案組成 3.優勢 二、資源清單 三、案例實施 1.修改主機名 2.安裝MySQL數據庫&#xff08;Master1、Master2&#xff09; 3.配置mysql雙主復制 4.安裝haproxy&#xff08;keepalived1、keepalived2&#xff09; 5.安裝keepaliv…

CSS學習筆記8——表格

一、表格 1-1、創建表格 在Word文檔中&#xff0c;如果要創建表格&#xff0c;只需插入表格&#xff0c;然后設定相應的行數和列數即可。然而在HTML網頁中&#xff0c;所有的元素都是通過標簽定義的&#xff0c;要想創建表格&#xff0c;就需要使用與表格相關的標簽。使用標簽…

爬蟲學習筆記(一)

目的 通過編寫程序爬取互聯網上的優質資源 爬蟲必須要使用python嗎 非也~ 編程語言知識工具&#xff0c;抓取到數據才是目的&#xff0c;而大多數爬蟲采用python語言編寫的原因是python的語法比較簡單&#xff0c;python寫爬蟲比較簡單&#xff01;好用&#xff01;而且pyt…

大廠面試:MySQL篇

前言 本章內容來自B站黑馬程序員java大廠面試題和小林coding 博主學習筆記&#xff0c;如果有不對的地方&#xff0c;海涵。 如果這篇文章對你有幫助&#xff0c;可以點點關注&#xff0c;點點贊&#xff0c;謝謝你&#xff01; 1.MySQL優化 1.1 定位慢查詢 定位 一個SQL…

C++_數據結構_詳解紅黑樹

?? 歡迎大家來到小傘的大講堂?? &#x1f388;&#x1f388;養成好習慣&#xff0c;先贊后看哦~&#x1f388;&#x1f388; 所屬專欄&#xff1a;C學習 小傘的主頁&#xff1a;xiaosan_blog 制作不易&#xff01;點個贊吧&#xff01;&#xff01;謝謝喵&#xff01;&…