mysql的邏輯架構圖
mysql是分層的
整體分為
connectors:連線驅動
enterprise management services & utillties :服務管理器和一些工具
connection pool:連線池
sql interfice : sql介面
parser:解析器
optimizer:優化器
caches & buffer :快取
pluggable storage engines:儲存引擎 第一次知道原來mysql有這麼對儲存引擎[捂臉]
file system:檔案系統 也就是c盤d盤只不過圖上畫的是分了ntfs和san
files & log : 檔案與日誌
是不是看完對mysql又有了乙個全新的認識;我也是
接下來說一下查詢快取
快取分別會快取sql和資料
sql快取預設開啟的
資料快取預設是關閉的
資料快取需要手動開啟同時設定快取大小
//查詢資料快取是否開啟
show variables like '%query_cache_type%'
//查詢快取的大小
show variables like '%query_cache_size%'
//設定開啟快取
如果不是on,修改配置檔案以開啟查詢快取,預設是off:
vi /etc/my.cnf
[mysqld]中新增:
query_cache_size = 20m
query_cache_type = 1
//設定快取大小
set global query_cache_size = 134217728;
手寫sql
sql解析
優化器源sql
由此可見是存在where條件的 查詢的表是esp_76
源sql
由此可見在經過sql優化器之後,where 1=1被優化掉了,在mysql看來有where和沒有where的執行結果是一致的
源sql
由此可見因為id是主鍵,所以不可能為null,所以mysql在extra中表示出這條sql是沒有返回結果的,並且table欄位也是空的,乾脆連表都不掃瞄了
這就是sql的優化器
太睏了,下一章說儲存引擎
內容關於:mysql
本文**於網路,只做技術分享,一概不負任何責任
mysql邏輯結構部落格 mysql 概念和邏輯架構
1.mysql整體邏輯架構 mysql 資料庫的邏輯架構如下圖 第二層值得關注。這是mysql的核心部分。通常叫做 sql layer。在 mysql據庫系統處理底層資料之前的所有工作都是在這一層完成的,包括許可權判斷,sql解析,行計畫優化,query cache 的處理以及所有內建的函式 如日期...
mysql 多邏輯 MySql邏輯架構
一 mysql伺服器邏輯架構圖 每個虛線框都是一層 第二層 大多數的mysql的核心服務功能都在這一層,包括查詢解析 分析 優化 快取以及所有的內建函式 例如 日期,時間,數學和加密函式等 所有跨儲存引擎的功能都在這一層實現 儲存過程,觸發器,檢視。第三層 包含了儲存引擎。儲存引擎負責mysql中的...
mysql索引的選擇 Mysql索引選擇邏輯
索引選擇邏輯 優化器選擇索引的目的,是找到乙個最優的執行方案,並用最小的代價去執行語句。在資料庫裡面,掃瞄行數是影響執行代價的因素之一。掃瞄的行數越少,意味著訪問磁碟資料的次數越少,消耗的 cpu 資源越少 掃瞄行數是怎麼判斷的?mysql 在真正開始執行語句之前,並不能精確地知道滿足這個條件的記錄...