1.MySQL C/S模型
Server(服務(wù)端): mysqld
Client(客戶端):
socket:僅本地連接使用
tcp/ip :應(yīng)用連接使用
TCP\IP方式(遠(yuǎn)程、本地):
mysql -uroot -p123 -h 10.0.0.51 -P3306
Socket方式(僅本地):
mysql -uroot -p123 -S /tmp/mysql.sock
2.實(shí)例
mysqld ----->master thread ------->干活的線程+育分配的內(nèi)存結(jié)構(gòu)
boss 經(jīng)理 員工 辦公室
3.mysqld的程序結(jié)構(gòu)
3.1MySQL的專用管理和操作命令SQL
DDL 數(shù)據(jù)定義語(yǔ)言
DCL 數(shù)據(jù)控制語(yǔ)音
DML 數(shù)據(jù)操作語(yǔ)言
DQL 數(shù)據(jù)查詢語(yǔ)言
3.2 SQL語(yǔ)句的執(zhí)行過(guò)程
select user,host from mysql.user;
(1) mysql -uroot -pxxx
3.2.1 連接層
(1)提供連接協(xié)議
sokcet
TCP\IP
(2)驗(yàn)證user password host port(端口號(hào))
(3)提供連接線程
show processlist;

功能:接受SQL語(yǔ)句,返回結(jié)果
3.2.2 SQL層
(1)語(yǔ)法檢查和SQL_MODE檢查
(2) 語(yǔ)義檢查和權(quán)限檢查
(3) 解析預(yù)處理,生成解析樹(執(zhí)行計(jì)劃樹)
(4)優(yōu)化會(huì)根據(jù)自帶算法,評(píng)估最優(yōu)的方案(代價(jià)模型算法)
代價(jià):cpu io mem
(5) 選擇最優(yōu)的方案進(jìn)行執(zhí)行SQL
(6) 提供查詢緩存(默認(rèn)是沒(méi)有開啟的),會(huì)使用redis tair替代查詢緩存功能
(7) 提供日志記錄(日志管理章節(jié)):binlog默認(rèn)是沒(méi)開啟的。
3.2.3 存儲(chǔ)引擎層
相當(dāng)于文件系統(tǒng),將數(shù)據(jù)取出,再交給SQL層結(jié)構(gòu)化成表,返回給用戶。