MySQL / 基本架构介绍
目錄
一、基本架構(gòu)圖
二、連接器
三、查詢緩存
四、分析器
五、優(yōu)化器
六、執(zhí)行器
一、基本架構(gòu)圖
二、連接器
1、與 Client 進(jìn)行三次握手建立連接。指令如下:
mysql -h (ip) -P (port) -u (username) -p若賬號(hào)密碼錯(cuò)誤,則報(bào)如下錯(cuò)誤:
Access denied for user連接若不存在交互,時(shí)間超過(guò) wait_timeout 之后,該連接會(huì)斷開(kāi)。?
2、從權(quán)限表中讀取該 Client 所擁有的權(quán)限。
3、連接分為長(zhǎng)連接和短連接。前者是 Client 持續(xù)的請(qǐng)求,都是用同一個(gè)連接;后者是執(zhí)行完很少的幾次查詢之后就斷開(kāi)連接,下次查詢時(shí)需要再次進(jìn)行連接。
4、長(zhǎng)連接也有弊病,很多臨時(shí)的內(nèi)存需要等到連接斷開(kāi)之后才能關(guān)閉,這就導(dǎo)致了隨著連接的時(shí)間的增長(zhǎng),內(nèi)存消耗會(huì)加大,最終導(dǎo)致 MySQL 被系統(tǒng)殺掉,即:異常重啟。解決辦法如下:
(1)定期斷開(kāi)連接。檢測(cè)執(zhí)行完一次占用內(nèi)存大的查詢之后,就斷開(kāi)連接。
(2)重置連接至剛創(chuàng)建完時(shí)的狀態(tài)。函數(shù):
mysql_reset_connection三、查詢緩存
1、執(zhí)行過(guò)的指令和結(jié)果會(huì)以 key-value 對(duì)的形式保存。
2、優(yōu)勢(shì)是提高 MySQL 的查詢效率。
3、弊病是每次表更新之后,該緩存就會(huì)清空。
四、分析器
1、詞法分析。
2、語(yǔ)法分析。經(jīng)常報(bào)錯(cuò)如下:
You have an error in your SQL syntax.五、優(yōu)化器
? ? ? ?決定使用哪一個(gè)索引,決定各個(gè)表的關(guān)聯(lián)順序,即:確定執(zhí)行方案。
六、執(zhí)行器
1、確定優(yōu)化器返回的執(zhí)行方案是否有權(quán)限。
2、打開(kāi)表進(jìn)行操作。
?
參考:極客時(shí)間,《MySQL實(shí)戰(zhàn)45講》第2講。
(SAW:Game Over!)
總結(jié)
以上是生活随笔為你收集整理的MySQL / 基本架构介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Cpp 对象模型探索 / 成员初始化列表
- 下一篇: 数据库 / 事务的 ACID