MySql的邏輯架構

Mysql在互聯網企業中應用很是普遍,互聯網企業的特色訪問量很是大,怎麼樣優化mysql就成了擺在咱們面前的一道難題。mysql

咱們從mysql的邏輯架構提及:sql

image.png

最上面一層是客戶端的鏈接服務,主要完成客戶端的鏈接處理,受權認證。在該層有一個線程池,每個鏈接從線程池中獲取線程,省去了建立和銷燬線程的開銷。數據庫

中間這一層能夠完成查詢解析,分析,優化,緩存。存儲過程,觸發器,視圖也是在這一層。緩存

最下面一層是存儲引擎,負責mysql中數據的存儲和提取。架構

 

和其它數據庫有所不一樣,mysql的存儲引擎是可插拔的,能夠根據不一樣的場合使用不一樣的存儲引擎。ide

 

存儲引擎:優化

存儲引擎就是存儲數據,更新查詢數據,創建索引等等的技術實現方式,mysql5.0支持的存儲引擎包括: InnoDB MyISAM BDBMEMORYMERGEEXAMPLENDB ClusterARCHIVECSVBLACKHOLEFEDERATED,其中使用最多的是InnoDB MyISAMmysql5.5以後InnoDB是默認的存儲引擎咱們重點討論這兩個存儲引擎spa

 

查看mysql默認存儲引擎的命令:線程

show variables like '%storage_engine%'索引

 

InnoDB存儲引擎和MyISAM的對比圖:

image.png

InnoDB存儲引擎和MyISAM存儲引擎的最大區別有如下三點:

1.     InnoDB支持事物,MyISAM不支持

2.     InnoDB支持外鍵,MyISAM不支持

3.     批量插入的速度MyISAM要高於InnoDB

基於以上特色來看看在實際使用中應該如何選擇存儲引擎:

InnoDB存儲引擎:由於InnoDB存儲引擎支持事物,因此對於要求事物完整性的場合須要選擇InnoDB,好比數據操做除了插入和查詢之外還包含有不少更新刪除操做,像財務系統等對數據準確性要求較高的系統。

MyISAM存儲引擎:若是系統是以讀操做和插入操做爲主,只有不多的更新刪除操做,而且對事物的之處沒有要求那麼能夠選擇這個存儲引擎。

相關文章
相關標籤/搜索