MySQL是典型的C/S架構,也就是Client/Server架構,服務器端程序使用的mysqld.總體的MySQL流程以下圖所示:mysql
MySQL是有三層組成:sql
其中,SQL層與數據庫文件的存儲方式無關,咱們來看下SQL層的架構:數據庫
SQL語句在MySQL中的流程是: SQL語句 -> 緩存查詢 -> 解析器 -> 優化器 -> 執行器.緩存
說說存儲引擎,MySQL的存儲引擎採用了插件的方式,每一個存儲引擎都面向一種特定的數據庫應用環境.同事MySQL還容許開發人員設置本身的存儲引擎.下面列舉常見的存儲引擎:服務器
注意,數據庫的設計在於表的設計,因此MySQL中每一個表的設計均可以採用不一樣的存儲引擎,能夠根據實際狀況的數據處理須要來選擇存儲引擎,這個是MySQL強大的地方.架構
完成的MySQL結構圖以下:
oracle
profiling的使用,開啓profiling可讓MySQL收集在SQL執行時所使用的資源狀況,命令以下分佈式
select @@profiliong;
返回結果若是是0表示關閉,若是是1表示打開.可使用 set profiling = 1;將profiling打開.優化
接下來能夠執行sql語句,而後使用 show profiles來查詢當前會話產生的全部peofiles.
插件
前面會有query_id,可使用show profile;獲取上次查詢執行的時間,或者使用show profile for query id;查詢指定的query id執行的時間.
固然還有oracle的執行過程,這個暫時不研究.