MySql輕鬆入門系列————第一站 從原始碼角度輕鬆認識mysql整體框架圖
阿新 • • 發佈:2020-06-02
一:背景
1. 講故事
最近看各大技術社群,不管是知乎,掘金,部落格園,csdn基本上看不到有小夥伴分享sqlserver類的文章,看樣子這些年sqlserver沒落了,已經後繼無人了,再寫sqlserver是不可能再寫了,這輩子都不會寫了,只能靠技術輸出mysql維持生活這樣子。
二:瞭解架構圖
mysql最大的好處就是開源, 手握百萬原始碼,有什麼問題搞不定呢? 這一點要比sqlserver爽多了,不用再dbcc搗來搗去。
1. 從架構圖入手
大家都知道做/裝修房子都要有一張圖紙,其實軟體也是一樣,只要有了這麼一張圖紙,大方向就定下來了,再深入到細節也不會亂了方向,然後給大家看一下我自己畫的架構圖,畫的不對請輕拍。
其實SqlServer,Oracle,MySql架構都大同小異,MySql的鮮明特點就是儲存引擎做成了插拔式,這就牛逼了,現行最常用的是InnoDB,這就讓我有了一個想法,有一套業務準備用 InMemory 模式跑一下,厲害了~~~
2. 功能點介紹
MySql其實就兩大塊,一塊是MySql Server層,一塊就是Storage Engines層。
<1> Client
不同語言的sdk遵守mysql協議就可以與mysqld進行互通。
<2> Connection/Thread Pool
MySql使用C++編寫,Connection是非常寶貴的,在初始化的時候維護一個池。
❤️> SqlInterface,Parse,Optimizer,Cache
對sql處理,解析,優化,快取等處理和過濾模組,瞭解瞭解即可。
<4> Storage Engines
負責儲存的模組,官方,第三方,甚至是你自己都可以自定義實現這個資料儲存,這就把生態做起來了,