溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MYSQL企業(yè)級(jí)應(yīng)用(二)體系結(jié)構(gòu)

發(fā)布時(shí)間:2020-08-05 19:57:23 來(lái)源:網(wǎng)絡(luò) 閱讀:1050 作者:余8520 欄目:MySQL數(shù)據(jù)庫(kù)

2.1 MYSQL服務(wù)結(jié)構(gòu)
mySQL是一個(gè)典型的c/s模式,由服務(wù)端和客戶端組成。
服務(wù)端:mysqld
客戶端:mysql
客戶端自帶程序:mysql,mysqladmin,mysqldump等
MYSQL企業(yè)級(jí)應(yīng)用(二)體系結(jié)構(gòu)
2.2 MYSQL連接方式
TCP/IP連接方式
mysql -uroot -p123456 -h IP
套接字連接(也可以稱為網(wǎng)絡(luò)套接字連接)
mysql -uroot -p123 -S /tmp/mysql.sock
sock是可以在/etc/my.cnf中自己指定目錄
像我們常用的mysql -uroot -p123456 就是采用套接字連接的
2.3 MYSQL的啟動(dòng)過(guò)程
啟動(dòng)后臺(tái)守護(hù)進(jìn)程,并生成工作線程
預(yù)分配內(nèi)存結(jié)構(gòu)供MySQL處理數(shù)據(jù)使用
2.4 MYSQLD的服務(wù)器程序構(gòu)成
MYSQL企業(yè)級(jí)應(yīng)用(二)體系結(jié)構(gòu)
2.4.1 連接層
MYSQL企業(yè)級(jí)應(yīng)用(二)體系結(jié)構(gòu)
通信協(xié)議:TCP/IP
線程:連接數(shù)量
驗(yàn)證:用戶名,用戶密碼
2.4.2 SQL層
MYSQL企業(yè)級(jí)應(yīng)用(二)體系結(jié)構(gòu)
SQL:結(jié)構(gòu)化的查詢語(yǔ)言(數(shù)據(jù)庫(kù)內(nèi)部的邏輯語(yǔ)言)
DDL:數(shù)據(jù)庫(kù)定義語(yǔ)言
DCL:數(shù)據(jù)庫(kù)控制語(yǔ)言
DML:數(shù)據(jù)庫(kù)操作語(yǔ)言
DQL:數(shù)據(jù)查詢語(yǔ)言
SQL層的功能
1、判斷
語(yǔ)法、語(yǔ)句、語(yǔ)義
語(yǔ)句類型:DQL select
2、數(shù)據(jù)庫(kù)不能真正理解SQL語(yǔ)句
必須明確的知道,數(shù)據(jù)在哪個(gè)磁盤的,哪個(gè)文件的哪個(gè),哪個(gè)頁(yè)上。
數(shù)據(jù)庫(kù)對(duì)象授權(quán)情況進(jìn)行檢查。
3、解析(解析器)
將sql語(yǔ)句解析成N種執(zhí)行計(jì)劃
4、優(yōu)化 (優(yōu)化器)
5.6以后學(xué)習(xí)了oracle,基于代價(jià)算法,從N中執(zhí)行計(jì)劃中選擇代價(jià)最小的交給“執(zhí)行器”
5、“執(zhí)行器”
運(yùn)行執(zhí)行計(jì)劃
生成如何去磁盤找數(shù)據(jù)方式
6、將取數(shù)據(jù)獲取的方式,交由下層(存儲(chǔ)引擎層)進(jìn)行處理
7、最終,將取出的數(shù)據(jù)抽象成 管理員或用戶能看懂的方式(表),展現(xiàn)用戶面前。
8、查詢緩存:緩存之前查詢的數(shù)據(jù)。假如我們查詢的表是一個(gè)經(jīng)常有變動(dòng)的表,查詢緩存不要設(shè)置太大。
SQL處理流程:
MYSQL企業(yè)級(jí)應(yīng)用(二)體系結(jié)構(gòu)
2.4.3存儲(chǔ)引擎層
存儲(chǔ)引擎是充當(dāng)不同表類型的處理程序的服務(wù)器組件。
MYSQL企業(yè)級(jí)應(yīng)用(二)體系結(jié)構(gòu)
存儲(chǔ)引擎層的功能
存數(shù)據(jù)、取數(shù)據(jù) (往磁盤上讀寫,相當(dāng)于中介)
數(shù)據(jù)的不同存儲(chǔ)方式
不同的管理方式:
事務(wù)(增、刪、改)
備份恢復(fù)
高級(jí)功能(高可用的架構(gòu)、讀寫分離架構(gòu))
特殊功能:
全文搜索
引用完整性
空間數(shù)據(jù)處理
存儲(chǔ)引擎用于:
存儲(chǔ)數(shù)據(jù)
檢索數(shù)據(jù)
通過(guò)索引查找數(shù)據(jù)
雙層處理
上層包括SQL解析器和優(yōu)化器
下層包含一組存儲(chǔ)引擎
SQL 層不依賴于存儲(chǔ)引擎:
引擎不影響SQL處理
有一些例外
2.5 MYSQL邏輯結(jié)構(gòu)(數(shù)據(jù)庫(kù)內(nèi)部結(jié)構(gòu))
邏輯構(gòu)成是為了用戶能夠讀懂?dāng)?shù)據(jù)出現(xiàn)的
管理數(shù)據(jù)的一種方式。
對(duì)象:
庫(kù)中包含表,在linux中以目錄表示
表中有列結(jié)構(gòu)與行記錄,在linux中以多個(gè)文件表示
行記錄
列結(jié)構(gòu)
2.6 MYSQL的存儲(chǔ)方式
程序文件隨數(shù)據(jù)目錄一起存儲(chǔ)在服務(wù)器安裝目錄下。執(zhí)行各種客戶機(jī)程序、管理程序和實(shí)用程序時(shí)將創(chuàng)建程序可執(zhí)行文件和日志文件。首要使用磁盤空間的是數(shù)據(jù)目錄。
服務(wù)器日志文件和狀態(tài)文件:
包含有關(guān)服務(wù)器處理的語(yǔ)句的信息。日志可用于進(jìn)行故障排除、監(jiān)視、復(fù)制和恢復(fù)。
InnoDB 日志文件:
(適用于所有數(shù)據(jù)庫(kù))駐留在數(shù)據(jù)目錄級(jí)別。
InnoDB 系統(tǒng)表空間:
包含數(shù)據(jù)字典、撤消日志和緩沖區(qū)。
每個(gè)數(shù)據(jù)庫(kù)在數(shù)據(jù)目錄下均具有單一目錄(無(wú)論在數(shù)據(jù)庫(kù)中創(chuàng)建何種類型的表)。數(shù)據(jù)庫(kù)目錄存儲(chǔ)以下內(nèi)容:
數(shù)據(jù)文件:
特定于存儲(chǔ)引擎的數(shù)據(jù)文件。這些文件也可能包含元數(shù)據(jù)或索引信息,具體取決于所使用的存儲(chǔ)引擎。
格式文件 (.frm):
包含每個(gè)表和/或視圖結(jié)構(gòu)的說(shuō)明,位于相應(yīng)的數(shù)據(jù)庫(kù)目錄中。
觸發(fā)器:
與某個(gè)表關(guān)聯(lián)并在該表發(fā)生特定事件時(shí)激活的命名數(shù)據(jù)庫(kù)對(duì)象。
數(shù)據(jù)目錄的位置取決于配置、操作系統(tǒng)、安裝包和分發(fā)。典型位置是 /var/lib/mysql。
MySQL 在磁盤上存儲(chǔ)系統(tǒng)數(shù)據(jù)庫(kù) (mysql)。
mysql 包含諸如用戶、特權(quán)、插件、幫助列表、事件、時(shí)區(qū)實(shí)現(xiàn)和存儲(chǔ)例程之類的信息。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI