1. 程式人生 > >MySql輕鬆入門系列————第一站 從原始碼角度輕鬆認識mysql整體框架圖

MySql輕鬆入門系列————第一站 從原始碼角度輕鬆認識mysql整體框架圖

一:背景

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

負責儲存的模組,官方,第三方,甚至是你自己都可以自定義實現這個資料儲存,這就把生態做起來了,