mysql體系結(jié)構(gòu)
從mysql官方手冊(cè)給的架構(gòu)圖(參考文獻(xiàn)1)來看,mysql采用分層的架構(gòu)资柔,面向client是最上面一層蛮放,使用連接池組件(如果連接數(shù)過多,超過了該連接池的上限隧膏,是不是就把db打爆了哗讥,因?yàn)樘幚聿贿^來);下面一層包含SQL接口組件(包括DDL胞枕、DML)杆煞、查詢分析器、優(yōu)化器腐泻、緩存組件决乎;再下面一層是存儲(chǔ)引擎插件(常見的比如InnoDB、MyISAM);最底層為文件系統(tǒng)贫悄。
以查詢?yōu)槔簃ysql client發(fā)起一個(gè)select請(qǐng)求瑞驱,在連接池層驗(yàn)證合法性、建立連接窄坦,其次對(duì)sql進(jìn)行語法分析唤反,對(duì)SQL進(jìn)行優(yōu)化,然后把優(yōu)化后的SQL傳到存儲(chǔ)引擎中鸭津,存儲(chǔ)引擎從文件系統(tǒng)中取出數(shù)據(jù)返回彤侍。
參考:
1、MySQL技術(shù)內(nèi)幕-InnoDB存儲(chǔ)引擎