MySql學習(一)mysql基礎架構

2021-10-03 05:58:11 字數 1894 閱讀 2692

可插拔式儲存引擎

檔案系統

客戶端負責發出sql(結構化查詢語言)。

負責對sql進行進一步處理

management services & utillties(了解)

提供一些管理工具

connection pool(了解)

管理使用者連線,包括下面幾個元件

authentication 授權管理

thread rouse 執行緒管理

connection limits 鏈結限制

caches 快取

sql inte***ce (重要)

負責對客戶端發出的sql請求進行分發,不同的sql請求處理是不一樣的。型別有以下種:

dml 資料操縱語言dml

主要有三種形式:

插入:insert

更新:update

刪除:delete

dql 資料查詢語言dql

基本結構是由select子句,from子句,where

子句組成的查詢塊:

select 《欄位名表》

from 《表或檢視名》

where 《查詢條件》

ddl 資料定義語言ddl

用來建立資料庫中的各種物件,如表、檢視、

索引、同義詞、聚簇等。

注意:ddl為**提交,無法回滾。

dcl 資料控制語言dcl

在資料庫的插入、刪除和修改操作時,只有當事務在提交到資料

庫時才算完成。在事務提交前,只有運算元據庫的這個人才能有權看

到所做的事情,別人只有在最後提交完成後才可以看到。

提交資料有三種型別:顯式提交、隱式提交及自動提交。下面分

別說明這三種型別。

(1) 顯式提交

用commit命令直接完成的提交為顯式提交。其格式為:

sql>commit;

(2) 隱式提交

用sql命令間接完成的提交為隱式提交。這些命令是:

alter,audit,comment,connect,create,disconnect,drop,

exit,grant,noaudit,quit,revoke,rename。

(3) 自動提交

若把autocommit設定為on,則在插入、修改、刪除語句執行後,

系統將自動進行提交,這就是自動提交。其格式為:

sql>set autocommit on;

parser

解析器語法解析

按照特定規則解析語法,形成語法樹。而這個語法書定義的sql的執行順序,如下圖執行順序為子節點從左向右執行,那麼順序為 執行from 語句 —> 執行where語句 --> 執行select語句

對請求的sql進行優化,很重要的一點就是索引的選擇

儲存資料提供讀寫介面

mysql最終是將資料存在硬碟中

綜上所述

mysql得到sql語句後,大概流程如下:

0.聯結器負責和客戶端進行通訊

1.查詢快取:首先查詢快取看是否存在k-v快取

2.解析器:負責解析和**sql

3.預處理器:對解析後的sql樹進行驗證

4.優化器:得到乙個執行計畫

5.查詢執行引擎:執行器執行語句得到資料結果集

6.將資料放回給呼叫端。

MySQL學習筆記(一) MySQL基礎架構

mysql可分為server層和儲存引擎層兩部分 1.1 server層 聯結器 許可權驗證 盡量使用長連線,但是長連線會消耗記憶體,可以定時清理,也可以重新初始化鏈結資源 查快取 一般不用,除非讀多寫少 8.0移除 分析器 詞法分析,語法分析,語法解析 優化器 使用哪個索引 表連線順序 執行器 執...

Mysql學習專欄之一(Mysql基礎架構)

mysql 可以分為server 層和儲存引擎層兩部分,如下圖所示 server 層包括聯結器 查詢快取 分析器 優化器 執行器等,涵蓋 mysql 的大多數核心服務功能,以及所有的內建函式 如日期 時間 數學和加密函式等 所有跨儲存引擎的功能都在這一層實現,比如儲存過程 觸發器 檢視等。而儲存引擎...

MySql基礎學習 mysql安裝

linux環境下的安裝 1檢查是否已經安裝 sudo service mysql start mysql unrecognized service 2安裝mysql 安裝 mysql 服務端 核心程式 sudo apt get install mysql server 安裝 mysql 客戶端 su...