1. 程式人生 > 實用技巧 >Mysql體系結構管理

Mysql體系結構管理

1.客戶端與服務端模型

1)資料是一個典型的C/S結構的服務

1.mysql自帶的客戶端工具
	mysql
	mysqladmin
	mysqldump
	
3.mysql是一個二進位制程式,後臺守護程序
	單程序
	多執行緒

2)mysql的連線方式

1.TCP/IP連線
2.socket連線

	#tcp/ip連線
	mysql -uroot -p -h127.0.0.1
	mysql -uroot -p -h127.0.0.1 -S /tmp/mysql.sock
	
	#socket連線
	mysql -uroot -p -hlocalhost
	mysql -uroot -p
	
	#注意:
	1)不一定-h就是TCP/IP連線,如果是localhosts就是socket連線
	2)socket連線比TCP/IP連線快,TCP/IP連線需要經過三次握手,四次揮手,慢
	3)socket連線只能本地連線,遠端不能使用

2.MySQL服務構成

1)什麼是例項

1.MySQL的後臺程序 + 執行緒 + 預分配的記憶體空間
2.MySQL在啟動的過程中會啟動後臺守護程序,並生成工作執行緒,預分配記憶體結構供MySQL處理資料使用。

預分配記憶體,比如分配了8G給資料庫,那麼資料庫啟動的時候就佔用8G的記憶體空間,但是超過了的佔用記憶體的也不會被開啟。

2.MySQL服務程式構成

1)連線層

1.驗證使用者身份,判斷使用者名稱和密碼
2.提供兩種連線方式
	- sockect 連線
	- TCP/IP 連線
3.與SQL層建立互動的執行緒

2)sql層

1.接收連線層傳過來的資料
2.判斷sql語句的語法
3.判斷SQL語句的語義
4.解析器:解析sql語句,生成執行計劃
5.優化器:選出執行計劃中最優的計劃
6.執行器:解析sql語句,生成執行計劃
	6.1 與儲存引擎層建立互動
	6.2 將優化後要執行的SQL發給儲存引擎層
7.記錄快取,如果前端有redis,將資料快取至redis
8.記錄日誌

3)儲存引擎層

1.與sql層建立互動,接收SQL層傳來的SQL語句
2.與磁碟進行互動,獲取資料,將資料返回給sql層