1. 程式人生 > >MySQL 配置文件及邏輯架構

MySQL 配置文件及邏輯架構

rar mysql table 安全 提升 數據存儲 錯誤日誌 tcp 順序

配置文件:

  1. linux:/etc/my.cnf 默認配置文件:/usr/share/mysql/my-default.cnf
  2. windows:my.ini

主要日誌文件:

  1. 二進制日誌log-bin:主從復制。
  2. 錯誤日誌log-error:默認是關閉的, 記錄嚴重的警告和錯誤信息, 每次啟動和關閉的詳細信息等。
  3. 查詢日誌log:默認是關閉的, 記錄查詢的sql語句, 如果開啟會減低mysql的整體性能, 因為記錄日誌也是需要消耗系統資源的。

數據文件:

  1. frm文件:存放表結構。
  2. myd文件:存放表數據。
  3. myi:存放表索引。

MySQL邏輯架構:

技術分享

  1. 連接層:最上層是一些客戶端和連接服務, 包含本地sock通信和大多數基於客戶端/服務端工具實現的類似TCP/IP的通信。主要完成一些類似於連接處理、授權認證及相關的安全方案。在該層上引入了線程池的概念, 為通過認證安全介入的客戶端提供線程。同樣在該層上可以實現基於SSL的安全連接。服務器也會為安全接入的每個客戶端驗證它所具有的操作權限。
  2. 服務層:第二層架構主要完成多少的核心服務功能, 如SQL接口, 並完成緩存的查詢, SQL的分析和優化及部分內置函數的執行。所有跨存儲引擎的功能也在這一層實現, 如過程、函數等。在該層, 服務器會解析查詢並創建相應的內部解析樹, 並對其完成相應的優化, 如確定查詢表的順序、是否利用索引等, 最後生成相應的執行操作。如果是select語句, 服務器還會查詢內部的緩存。如果緩存空間足夠大, 這樣在解決大量讀操作的環境中能夠很好的提升系統的性能。
  3. 引擎層:存儲引擎層, 存儲引擎真正負責了MySQL中數據的存儲和提取, 服務器通過API與存儲引擎來進行通信。不同的存儲引擎具有的功能不同,這樣我們可以根據自己的實際需要進行選取。如MyISAM、InnoDB、NDB等。
  4. 存儲層:數據存儲層, 主要是將數據存儲在運行於裸設備的文件系統之上, 並完成與存儲引擎的交互。

查看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 配置文件及邏輯架構