標籤:tcp/ip tmp useful 產生 啟動 key 自己 系統資源 資料檔案
設定檔:
- 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 設定檔及邏輯架構