【MySQL】架構

?MySQL架構

和其它數據庫相比,MySQL有點與眾不同,它的架構可以在多種不同場景中應用并發揮良好作用。主要體現在存儲引擎的架構上,插件式的存儲引擎架構將查詢處理和其它的系統任務以及數據的存儲提取相分離。這種架構可以根據業務的需求和實際需要選擇合適的存儲引擎。

  1. 連接層(應用層):最上層是一些客戶端和連接服務。主要完成一些類似于連接處理、授權認證、及相關的安全方案。在該層上引入了線程池的概念,為通過認證安全接入的客戶端提供線程。同樣在該層上可以實現基于SSL的安全鏈接。服務器也會為安全接入的每個客戶端驗證它所具有的操作權限。
  2. 服務層(邏輯層):第二層服務層,主要完成大部分的核心服務功能, 包括查詢解析、分析、優化、緩存、以及所有的內置函數,所有跨存儲引擎的功能也都在這一層實現,包括觸發器、存儲過程、視圖等。
  3. 引擎層:第三層存儲引擎層,存儲引擎真正的負責了MySQL中數據的存儲和提取,服務器通過API與存儲引擎進行通信。不同的存儲引擎具有的功能不同,這樣我們可以根據自己的實際需要進行選取
  4. 存儲層(物理層):第四層為數據存儲層,主要是將數據存儲在運行于該設備的文件系統之上,并完成與存儲引擎的交互。
畫出 MySQL 架構圖,這種變態問題都能問的出來 MySQL 的查詢流程具體是?or 一條SQL語句在MySQL中如何執行的?

客戶端請求

---> 連接器(驗證用戶身份,給予權限)

---> 查詢緩存(存在緩存則直接返回,不存在則執行后續操作)

---> 分析器(對SQL進行詞法分析和語法分析操作)

---> 優化器(主要對執行的sql優化選擇最優的執行方案方法)

---> 執行器(執行時會先看用戶是否有執行權限,有才去使用這個引擎提供的接口)

---> 去引擎層獲取數據返回(如果開啟查詢緩存則會緩存查詢結果)

MySQL表存儲結構

單位:表>段>區>頁>行

在數據庫中,不論讀一行,還是讀多行,都是將這些行所在的頁進行加載。也就是說存儲空間的基本單位是頁。

一個頁就是一棵樹B+樹的節點,數據庫I/O操作的最小單位是頁,與數據庫相關的內容都會存儲在頁的結構里。

參考:

zhuanlan.zhihu.com/p/29150809

juejin.im/post/5e3eb6…

blog.csdn.net/yin76783337…

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

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

相關文章

JavaScript 金額運算精度丟失問題及解決方案

JavaScript 金額運算精度丟失問題及解決方案 1. 前言2. 為什么 JavaScript 計算金額會精度丟失?2.1 JavaScript 使用 IEEE 754 雙精度浮點數2.2 浮點運算錯誤示例**錯誤示例 1:0.1 0.2 ≠ 0.3****錯誤示例 2:浮點乘法精度問題** 3. 解決方案…

Docker安裝,并pullMySQL和redis

卸載原Docker 您的 Linux 發行版可能提供非官方的 Docker 軟件包,這可能與 Docker 提供的官方軟件包沖突。在安裝 Docker Engine 正式版之前,您必須先卸載這些軟件包。 sudo dnf remove docker \ docker-client \ docker-client-latest \ docker-common…

國內首臺太空采礦機器人亮相,宇宙資源開發邁入新階段

隨著地球資源的日益枯竭,人類將目光投向了浩瀚的宇宙。太空采礦作為一項前沿科技,正逐步從科幻走向現實。近日,中國礦業大學成功研制出國內首臺太空采礦機器人,標志著我國在太空資源開發領域邁出了重要一步。 太空采礦并非新鮮概念…

簡介PyCDE:Python CIRCT Design Entry

簡介PyCDE:Python CIRCT Design Entry 引言 在硬件設計和驗證領域,隨著設計復雜性的增加,傳統的方法往往難以滿足現代設計的需求。PyCDE(Python CIRCT Design Entry)作為CIRCT項目的一部分,旨在為硬件設計…

市場熱點復盤20240319

以下是對當前市場熱點板塊的分析總結,按邏輯分類如下: 一、機器人產業鏈核心標的 1. 減速器與核心部件 襄陽軸承:直接受益人形機器人減速器軸承需求,技術國內領先。金帝股份:聚焦機器人手指關節諧波減速機保持架&am…

目標檢測——清洗數據

清洗VOC格式數據集代碼示例 import os import xml.etree.ElementTree as ETdef process_annotations(image_folder, annotation_folder):# 遍歷標簽文件夾中的所有XML文件for xml_file in os.listdir(annotation_folder):if not xml_file.endswith(.xml):continuexml_path os…

Kubeasz工具快速部署K8Sv1.27版本集群(二進制方式)

文章目錄 一、基本信息二、服務器初始化操作三、使用Kubeasz部署K8S集群四、驗證集群 一、基本信息 1、部署需要滿足前提條件: 注意1:確保各節點時區設置一致、時間同步;注意2:確保在干凈的系統上開始安裝;注意3&…

RG-S3760應用協議配置

RG-S3760應用協議配置 1. dhcp 服務配置 提問:如何在設備上開啟dhcp 服務,讓不同VLAN 下的電腦獲得相應的IP 地址? 回答: 步驟一:配置VLAN 網關IP 地址,及將相關端口劃入相應的VLAN 中 S3760#con t S…

Java 文件和IO流基礎(生動形象版)

系列文章目錄 Java文件和IO流基礎部分 文件VSIO流 文章目錄 系列文章目錄前言一、文件的定義和理解: 1.專業定義: 2.文件系統和路徑: 二、IO流的定義和分類 1.定義:2.流的分類:修飾器模式的核心作用:基礎結…

Linux驅動學習筆記(四)

高級字符設備進階 1.一個完整的IO過程包含以下幾個步驟:1應用程序向操作系統發起IO調用請求(系統調用);2操作系統準備數據,把IO設備的數據加載到內核緩沖區;3操作系統拷貝數據,把內核緩沖區的數據從內核空間拷貝到應用…

el-table的行向上移動向下移動,刪除選定行

<template><el-table :data"tableData" border style"width: 100%"><!-- 其他列 --><el-table-column label"ID"><template slot-scope"scope">{{ scope.$index }}</template></el-table-colu…

人工智能之數學基礎:矩陣的降維

本文重點 在現實世界中,我們經常會遇到高維數據。例如,圖像數據通常具有很高的維度,每個像素點都可以看作是一個維度。高維數據不僅會帶來計算和存儲上的困難,還可能會導致 “維數災難”,即隨著維度的增加,數據的稀疏性和噪聲也會增加,從而影響數據分析的效果。因此,我…

2025年,電腦還需要分區嗎?

隨著2025年的到來&#xff0c;電腦存儲空間已經不像以前那么金貴&#xff0c;固態硬盤&#xff08;SSD&#xff09;容量更大、速度更快&#xff0c;云存儲也成了日常標配。許多人開始質疑&#xff1a;電腦還需要像以前那樣分區嗎&#xff1f; 一、分區到底是什么意思&#xff…

Springboot項目集成maven-assembly-plugin進行打包

通常我們將應用部署到服務器的某個目錄下&#xff0c;一般情況下我們會提供像target&#xff08;存放應用jar包&#xff09;&#xff0c;bin&#xff08;項目啟動/停止腳本&#xff09;&#xff0c;config&#xff08;項目配置文件&#xff09;&#xff0c;logs&#xff08;項目…

CSS3 基礎布局技術與響應式設計

1. CSS3 基礎與布局技術 1.1 Flexbox 布局 Flexbox 是一種一維布局模型&#xff0c;適合用于在一個方向上&#xff08;行或列&#xff09;排列元素。 基本概念&#xff1a; 容器&#xff08;Container&#xff09;&#xff1a;應用 display: flex; 的元素。項目&#xff08…

鴻蒙NEXT項目實戰-百得知識庫01

代碼倉地址&#xff0c;大家記得點個star IbestKnowTeach: 百得知識庫基于鴻蒙NEXT穩定版實現的一款企業級開發項目案例。 本案例涉及到多個鴻蒙相關技術知識點&#xff1a; 1、布局 2、配置文件 3、組件的封裝和使用 4、路由的使用 5、請求響應攔截器的封裝 6、位置服務 7、三…

【DeepSeek應用】本地部署deepseek模型后,如何在vscode中調用該模型進行代碼撰寫,檢視和優化?

若已成功在本地部署了 DeepSeek 模型(例如通過 vscode-llm、ollama 或私有 API 服務),在 VS Code 中調用本地模型進行代碼撰寫、檢視和優化的完整流程如下: 1. 準備工作:確認本地模型服務狀態 模型服務類型: 若使用 HTTP API 服務(如 FastAPI/Flask 封裝),假設服務地址…

jenkins 配置郵件問題整理

版本&#xff1a;Jenkins 2.492.1 插件&#xff1a; A.jenkins自帶的&#xff0c; B.安裝功能強大的插件 配置流程&#xff1a; 1. jenkins->系統配置->Jenkins Location 此處的”系統管理員郵件地址“&#xff0c;是配置之后發件人的email。 2.配置系統自帶的郵件A…

Android Coil3階梯preload批量Bitmap拼接扁平寬圖,Kotlin

Android Coil3階梯preload批量Bitmap拼接扁平寬圖&#xff0c;Kotlin <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-p…

C++基礎 [八] - list的使用與模擬實現

目錄 list的介紹 List的迭代器失效問題 List中sort的效率測試 list 容器的模擬實現思想 模塊分析 作用分析 list_node類設計 list 的迭代器類設計 迭代器類--存在的意義 迭代器類--模擬實現 模板參數 和 成員變量 構造函數 * 運算符的重載 運算符的重載 -- 運…