天天看點

MySQL進階性能優化---MySQL邏輯架構篇1. MySQL總體分層2. 整體執行流程

1. MySQL總體分層

1.1 連接配接層

我們用戶端發送一個Select是直接交給連接配接層來處理,而它的作用就是提供與用戶端連接配接的服務.連接配接層隻是與用戶端建立起連接配接.完成一些類似連接配接處理,授權認證 及相關的安全方案. 在該層上引入了連接配接池的概念.

MySQL進階性能優化---MySQL邏輯架構篇1. MySQL總體分層2. 整體執行流程

1.2 服務層

提供核心的服務功能,如sql接口,完成緩存的查詢,

sql的分析和優化部分及内置函數的執行.

服務包括以下内容:

1.2.1-Mangement Service

  • 備份
  • 安全
  • 複制
  • 叢集

1.2.2-SQL interface

  • 存儲過程
  • 視圖
  • 觸發器

1.2.3-Parser解析

  • 查詢事務
  • 對象權限

1.2.4-Optimizer優化器

當我們編寫Sql語句執行時,優化器會覺得我寫的sql語句性能不夠好,這個時候,優化器會自己寫一個等價于跟我寫的執行後結果一緻的sql語句進行代替.

1.2.5-Cache Buffers

緩存

伺服器會查詢内部的緩存,如果緩存空間足夠大,這樣可以解決大量讀操作的環境中,能夠很好的提升系統性能

MySQL進階性能優化---MySQL邏輯架構篇1. MySQL總體分層2. 整體執行流程

1.3 引擎層

存儲引擎是真正負責MYSQL中資料的存儲和提取,

伺服器通過API與存儲引擎進行通信,

不同的存儲引擎提供的功能不同,

可以根據自己的實際需求來進行選取

常見的有:lnnoDB、MylSAM、Memory

lnnoDB 【Mysql預設】:它在設計的時候,它是事物優先.

原理:因為它是行鎖,我每一條資料都要鎖,

鎖的太多,性能就降低了,雖然性能降低了,

但是我适合高并發了,就不容易出錯了

MylSAM:性能優先

原理:因為它是表鎖,

對于表裡面的十條資料來說是不受影響的,

對十條鎖一次就完了,是以性能快

Memroy:

memory存儲引擎是MySQL中的一類特殊的存儲引擎。其使用存儲在記憶體中的内容來建立表,而且所有資料也放在記憶體中,是以,其基于記憶體中的特性,這類表的處理速度會非常快,但是,其資料易丢失,生命周期短

MySQL進階性能優化---MySQL邏輯架構篇1. MySQL總體分層2. 整體執行流程

1.4 存儲層

主要是将資料存儲在運作的計算機檔案系統之上,

并完成與存儲引擎的互動.

MySQL進階性能優化---MySQL邏輯架構篇1. MySQL總體分層2. 整體執行流程

2. 整體執行流程

1.首先用戶端發出一個Select操作

2.連接配接層接收後給服務層

3.服務層對你的查詢進行一個優化

并把優化結果給引擎層

4.選擇目前資料庫的引擎,選完引擎後

引擎将最終的資料交給了存儲層

5.存儲層,用存儲層來存資料

繼續閱讀