日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

原来MySQl就是这样工作的

發布時間:2023/12/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 原来MySQl就是这样工作的 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、MySQL簡單介紹 ? ? MySQL是當今最流行的開源數據庫管理系統,超過10億的下載量足可以證明這點。MySQL以其速度、高可靠性、簡單易用,廣泛應用,一些大型企業也在逐漸應用,如:Facebook、維基百科等網站。MySQL最早由瑞典的MySQL AB公司開發,后于2008年被Sun收購,2009Oracle公司收購了Sun公司。它分為社區版和商業版,其體積小、速度快、總體成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇MySQL作為網站數據庫。其社區版的性能卓越,搭配PHPApache可組成良好的開發環境。 二、MySQL的基本組成部分流程圖:
<!--[endif]-->
流程圖詳解: ?

?

? ? 一旦用戶具有連接的權限,那用戶就可以發一些SQL語句,而每一個SQL語句需要進行分析,不同的語句需要分配給不同的解析器,因此就需要命令分發模塊,就把這些不同類型的語句分配給與之對應的解析器上去。如果命令在分發之前是一個查詢語句,而且我們的緩存中有內容,就可以直接返回給用戶結果了,因此也有可能會跟緩存模塊進行交互。當用戶發起一個命令之后,例如我們的web,當用戶請求資源后,都會記錄在日志中的,因此命令分發模塊也有可能會和日志模塊進行交互的,日志模塊的主要功能是記錄用戶查詢的。緩存模塊和日志模塊并不是并行的,命令分發模塊給兩者都有可能有交互的。 ? ? 如果緩存中沒有就要將用戶請求的命令分發出去,將命令交給解析器(解析查詢生成解析數),由解析器判斷命令最終屬于哪種語句,如果解析器解析此命令是select語句,需要交給優化器進行優化。如果是updateinsertdelete語句,需要交給表定義模塊(這一過程也要進行權限的判斷)。mysql也有與repair相關的語句,那可想而知需要表維護模塊了,表維護模塊主要作用是修復表中的某些邏輯錯誤的。mysql中也有很多狀態變量,而這些狀態變量也需要狀態報告模塊來存儲每一個執行過程中的狀態信息。mysql也有復制的功能,把主mysql服務器上的數據同步到從mysql服務器上的過程,這就是復制模塊的功能。 ? ? 無論哪個模塊,用戶最終要完成操作,必須要檢查用戶是否具有權限,上面所說的表定義模塊、表維護模塊都需要檢查用戶權限,因此最終這些命令語句都要交給訪問控制模塊來控制:用于檢驗客戶端用戶的操作是否具有足夠的操作權限,來執行請求操作如果訪問模塊檢查后發現沒有任何問題,會把這些命令語句交給另一個組件表管理器,由表管理器完整真正意義上的操作,表管理器負責創建、讀取或修改表定義文件的。表管理器交給存儲引擎(存儲引擎的接口),存儲引擎交給最核心的-->MYISAMINnoDB

?

? ? 所有的用戶連接請求都是先發往連接管理器的,連接管理器(是一個偵聽器)用于偵聽來自客戶端的連接,并接受用戶請求,用戶請求被接收下來,而一個用戶請求需要一個線程來響應,因此需要一個線程管理器。線程管理器負責給用戶創建生成新的線程或完成線程重置的方式給用戶一個響應線程,用戶連接進來后需要檢查用戶權限(是否允許訪問mysql服務器等等權限)。這時就需要用戶模塊出場了,用戶模塊負責管理用戶是否能夠連接的,這是管理權限的第一關,如果用戶不能請求,那用戶請求就終止了,因此用戶模塊還負責退回用戶請求(主要作用是驗證用戶請求和用戶身份的)。

轉載于:https://blog.51cto.com/littershare/1194369

總結

以上是生活随笔為你收集整理的原来MySQl就是这样工作的的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。