1.Mysql的配置文件:
1.1二進制文件:主從複製;
1.2錯誤日誌:默認是關閉的,記錄嚴重警告和錯誤信息,每次啓動和關閉的詳細信息等;
1.3查詢日誌:默認關閉,記錄查詢sql語句,如果開啓會減低mysql的整體性能,因爲記錄日誌也是需要消耗系統資源的;
1.4數據文件: linux:/var/lib/mysql;
1.5frm文件:存放表結構;
1.6myd文件:存放表數據;
1.7myi文件:存放表索引;
2.Mysql的整體邏輯架構:
和其他數據庫相比,mysql有些與衆不同,他的架構可以在多種不同場景中應用併發揮良好作用。主要體現在存儲引擎的架構上,插件式的存儲引擎架構將查詢處理和其他的系統任務以及數據的提取相分離。這種架構可以根據業務的需求和實際需求選擇合適的存儲引擎。
架構圖:
連接層:最上層是一些客戶端和連接服務,包含本地sock通信和大多數基於客戶端/服務端工具實現的類似於tcp/ip的通信。主要完成一些類似於連接處理、授權認證、以及相關的安全方案。在該層上引入了線程池的概念,爲通過認證安全接入的客戶端提供線程,同樣在該層上可以實現基於SSL的安全連接。服務器也會爲安全接入的每個客戶端驗證它所具有的操作權限。
服務層:第二層架構主要完成大多數的核心服務功能,如sql接口,並完成緩存的查詢,sql的分析和優化以及部分內置函數的執行。所有跨存儲引擎的功能也在這一層實現,如過程,函數等。在該層,服務器會解析查詢並創建相應的內部解析樹,並對其完成相應的優化如確定查詢表的順序,是否利用索引等,最後生成相應的執行操作。如果是select語句,服務器還會查詢北部的緩存。如果存儲空間足夠大,這樣在解決大量讀操作的環境中能夠很好的提升系統的性能。
引擎層:存儲引擎層,存儲引擎真正的負責了Mysql中數據的存儲和讀取,服務器通過API與存儲引擎進行通信。不同的存儲引擎具有的功能不同,這樣我們可以根據自己的實際需求進行選取。後面介紹MylSAM和InnoDB。
存儲層:數據存儲層將數據存儲在運行於裸設備的文件系統之上,並完成與存儲引擎的交互。
3.MySql的存儲:分類:MyISAM和InnoDB
在linux上查看mysql>show engines; 區別: