目錄mysql
小結sql
MYSQL物理文件組成數據庫
MYSQL系統架構安全
MYSQL自帶工具使用介紹架構
小結工具
本章主要從邏輯層與物理層兩個方面介紹了MYSQL軟件自己及數據存儲的架構,同時還包括了部分重要的客戶端工具的功能介紹。性能
經過對架構的瞭解,能夠對MYSQL有一個更爲宏觀的認識。優化
MYSQL物理文件組成spa
1. 日誌文件日誌
1) 錯誤日誌: Error Log
記錄MYSQL運行過程全部較爲嚴重的警告和錯誤信息,以及MYSQL每次啓動和關閉的詳細信息。
默認是關閉的,啓動是開啓 –log-error[=file_name]選項
2) 二進制日誌:Binary Log & Binary Log index
記錄MYSQL全部修改數據庫數據的Query,以二進制形式記錄在該日誌文件中(常說的binlog)。還包括每一條Query所執行的時間,所消耗的資源,以及相關的事務信息,因此binlog是事務安全。
啓動: --log-bin[=file_name]
3) 更新日誌:Update Log
MYSQL 5.0開始不在支持更新日誌
4) 查詢日誌:Query Log
記錄全部的Query,包括全部的select,體積比較大,開啓後對性能有較大影響,通常只在跟蹤某些特殊的Query性能問題時纔會短暫打開該功能。
開啓: -log[=file_name]
5) 慢查詢日誌:Slow query Log
記錄執行時間較長的Query,也就是常說的Slow Query
開啓:--log-slow-queries[=file_name]
6) InonoDB在線Redo日誌: InonoDB redo Log
記錄InnoDB所作的全部物理變動和事務信息,經過Redo日誌和Undo信息,InonoDB保證了在任何狀況下的事務安全性。
2. 數據文件
1) .frm文件
與表相關的元數據(meta)信息都存放在該文件中,不管是什麼存儲引擎,每一個表都有會有一個以表名命名的.frm文件。
2) .MYD文件
MyISAM存儲引擎專用,存放MyISAM表數據。
3) .MYI文件
MyISAM存儲引擎專用,存放MyISAM表索引相關信息。
4) .ibd文件和ibdata文件
InnoDB存儲引擎專用,其中,獨享表空間存儲方式使用.ibd文件存放數據;共享表空間存儲方式使用ibdata文件存放。
3. Replication相關文件
1) master.info文件; 2)relay log和relay log index ; 3)relay-log.info文件
4. 其餘文件
1) system config file; 2)pid文件; 3)Socket文件
MYSQL系統架構
2.2.1 邏輯模塊組成
圖2-1 MYSQL 架構示意簡圖
第一層:
SQL Layer,在MYSQL數據庫系統處理底層數據以前的全部工做都在這一層完成的,包括權限判斷,Query解析,執行計劃優化,Query Cache的處理等
第二層:
Storage Engine Layer,底層數據存取操做實現部分,由多種存儲引擎共同組成。
2.2.2 各模塊工做配合
圖2-2 MYSQL 模塊間的關係圖
MYSQL 自帶工具使用介紹
1) mysql
2) mysqladmin
3) mysqldump
4) mysqlimport
5) mysqlbinlog
主要功能是分析MYSQL所產生的二進制日誌。
6) mysqlcheck
能夠檢查,修復,分析,優化MYSQL的表。
注:並非全部的存儲引擎都支持這4項功能,象InnoDB就不支持修復功能
7) myisamchk
相似mysqlchek –c/-r,能夠檢查和修復MyISAM存儲引擎的表,可是隻針對MyISAM存儲引擎的索引文件有效
8) myisampack
對MyISAM表進行壓縮處理,以縮減佔用的存儲空間,通常用於歸檔備份的場景下,並且壓縮後的MyISAM表會變成只讀,不能進行任何修改操做。
9) mysqlhotcopy