MySQL后臺服務器行程默認名稱mysqld,客戶端名稱mysql,mysqld_safe是一個啟動腳本,間接呼叫mysqld還會啟用監控行程產出日志,systemctl start mysqld.service 會呼叫mysqld_safe
連接管理、查詢快取、語法決議、查詢優化這些邏輯層面的劃分為MySql server,MySQL server提供統一呼叫介面(存盤引擎API),資料的真實存盤劃分為 存盤引擎 功能,
MySQL將查詢結果逐潭訓傳給客戶端,只是在客戶端進行收集后匯總后才呈現給用戶
連接管理
MySQL為每一個連接都創建一個執行緒,斷開連接不會立即銷毀,快取起來,MySQL建立連接成本很高,除了TCP三次握手,還要做登陸權限判斷,以及獲取連接的資料讀寫權限
決議優化
查詢快取
每個客戶端執行緒共享查詢快取,快取并不智能,查詢請求有任何字符不同或者呼叫了系統函式,都不會進行快取,MySQL快取系統會監控每張表,只要表的資料或者結構改變則該表的所有查詢快取全部失效,查詢快取需要在服務器單獨維護造成一部分開銷,因此在MySQL8中洗掉,因為更新表的時候會將該表的所有查詢快取全部清除,
語法決議
詞法決議、語法分析,語意分析等
查詢優化
可以使用EXPLAIN查看sql執行計劃進行查詢優化,從MySQL 5.7.20開始,不推薦使用查詢快取,并在MySQL 8.0中洗掉
WAL技術,全稱
Write-Ahead Logging,將資料先寫入日志(順序寫),再寫入磁盤,InnoDB引擎寫入記錄前線順序寫入redo日志,之后在系統空閑的時候將undo日志操作寫入到磁盤,binlog是server層的歸檔日志
存盤引擎
存盤引擎以前叫“表處理器”,存盤引擎是負責對表中的資料進行提取和寫入作業的,我們可以為不同的表設定不同的存盤引擎,也就是說不同的表可以有不同的物理存盤結構,不同的提取和寫入方式,默認引擎:InnoDB具備外鍵功能的事務存盤引擎,MyISAM不支持事務,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/163674.html
標籤:其他
