MySQL 配置文件及邏輯架構
阿新 • • 發佈:2017-06-26
rar mysql table 安全 提升 數據存儲 錯誤日誌 tcp 順序
配置文件:
- linux:/etc/my.cnf 默認配置文件:/usr/share/mysql/my-default.cnf
- windows:my.ini
主要日誌文件:
- 二進制日誌log-bin:主從復制。
- 錯誤日誌log-error:默認是關閉的, 記錄嚴重的警告和錯誤信息, 每次啟動和關閉的詳細信息等。
- 查詢日誌log:默認是關閉的, 記錄查詢的sql語句, 如果開啟會減低mysql的整體性能, 因為記錄日誌也是需要消耗系統資源的。
數據文件:
- frm文件:存放表結構。
- myd文件:存放表數據。
- myi:存放表索引。
MySQL邏輯架構:
- 連接層:最上層是一些客戶端和連接服務, 包含本地sock通信和大多數基於客戶端/服務端工具實現的類似TCP/IP的通信。主要完成一些類似於連接處理、授權認證及相關的安全方案。在該層上引入了線程池的概念, 為通過認證安全介入的客戶端提供線程。同樣在該層上可以實現基於SSL的安全連接。服務器也會為安全接入的每個客戶端驗證它所具有的操作權限。
- 服務層:第二層架構主要完成多少的核心服務功能, 如SQL接口, 並完成緩存的查詢, SQL的分析和優化及部分內置函數的執行。所有跨存儲引擎的功能也在這一層實現, 如過程、函數等。在該層, 服務器會解析查詢並創建相應的內部解析樹, 並對其完成相應的優化, 如確定查詢表的順序、是否利用索引等, 最後生成相應的執行操作。如果是select語句, 服務器還會查詢內部的緩存。如果緩存空間足夠大, 這樣在解決大量讀操作的環境中能夠很好的提升系統的性能。
- 引擎層:存儲引擎層, 存儲引擎真正負責了MySQL中數據的存儲和提取, 服務器通過API與存儲引擎來進行通信。不同的存儲引擎具有的功能不同,這樣我們可以根據自己的實際需要進行選取。如MyISAM、InnoDB、NDB等。
- 存儲層:數據存儲層, 主要是將數據存儲在運行於裸設備的文件系統之上, 並完成與存儲引擎的交互。
查看MySQL提供的存儲引擎:
1 mysql> show engines; 2 +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ 3| Engine | Support | Comment | Transactions | XA | Savepoints | 4 +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ 5 | CSV | YES | CSV storage engine | NO | NO | NO | 6 | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | 7 | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | 8 | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | 9 | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | 10 | MyISAM | YES | MyISAM storage engine | NO | NO | NO | 11 | ARCHIVE | YES | Archive storage engine | NO | NO | NO | 12 | InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES | 13 | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL | 14 +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ 15 9 rows in set (0.01 sec)
或者:
mysql> show variables like ‘%storage_engine%‘; +----------------------------+--------+ | Variable_name | Value | +----------------------------+--------+ | default_storage_engine | InnoDB | | default_tmp_storage_engine | InnoDB | | storage_engine | InnoDB | +----------------------------+--------+ 3 rows in set (0.00 sec)
MySQL 配置文件及邏輯架構