Mysql 配置檔案 邏輯架構

2021-10-06 22:48:50 字數 3221 閱讀 4086

1. 二進位制日誌log-bin

主從複製

2. 錯誤日誌log-error

預設是關閉的,記錄嚴重的警告和錯誤資訊,每次啟動和關閉的詳細資訊等.

3. 查詢日誌log

預設關閉,記錄查詢的sql語句,如果開啟會減低mysql的整體效能,因為記錄日誌也是需要消耗系統資源的

4. 資料檔案

5. 如何配置

windows-->my.ini檔案

linux-->/etc/my.cnf檔案

和其它資料庫相比,mysql有點與眾不同,它的架構可以在多種不同場景中應用並發揮良好作用。主要體現在儲存引擎的架構上,外掛程式式的儲存引擎架構將查詢處理和其它的系統任務以及資料的儲存 提取相分離。這種架構可以根據業務的需求和實際需要選擇合適的儲存引擎。

1.連線層

最上層是一些客戶端和連線服務,包含本地sock通訊和大多數基於客戶端/服務端工具實現的類似於tcp/ip的通訊。主要完成一些類似於連線處理、授權認證、及相關的安全方案。在該層上引入了執行緒池的概念,為通過認證安全接入的客戶端提供執行緒。同樣在該層上可以實現基於ssl的安全鏈結。伺服器也會為安全接入的每個客戶端驗證它所具有的操作許可權。

2.服務層

第二層架構主要完成大多少的核心服務功能,如sql介面,並完成快取的查詢,sql的分析和優化及部分內建函式的執行。所有跨儲存引擎的功能也在這一層實現,如過程、函式等。在該層,伺服器會解析查詢並建立相應的內部解析樹,並對其完成相應的優化如確定查詢表的順序,是否利用索引等,最後生成相應的執行操作。如果是select語句,伺服器還會查詢內部的快取。如果快取空間足夠大,這樣在解決大量讀操作的環境中能夠很好的提公升系統的效能。 

3.引擎層

儲存引擎層,儲存引擎真正的負責了mysql中資料的儲存和提取,伺服器通過apl與儲存引擎進行通訊。不同的儲存引擎具有的功能不同,這樣我們可以根據自己的實際需要進行選取。myisam和innodb

4.儲存層

資料儲存層,主要是將資料儲存在執行於裸裝置的檔案系統之上,並完成與儲存引擎的互動。

注:1.connectors

指的是不同語言中與sql的互動

2 management serveices & utilities: 

系統管理和控制工具

3 connection pool: 連線池

管理緩衝使用者連線,執行緒處理等需要快取的需求。

負責監聽對 mysql server 的各種請求,接收連線請求,**所有連線請求到執行緒管理模組。每乙個連線上 mysql server 的客戶端請求都會被分配(或建立)乙個連線線程為其單獨服務。而連線線程的主要工作就是負責 mysql server 與客戶端的通訊,

接受客戶端的命令請求,傳遞 server 端的結果資訊等。執行緒管理模組則負責管理維護這些連線線程。包括執行緒的建立,執行緒的 cache 等。

4 sql inte***ce: sql介面。

接受使用者的sql命令,並且返回使用者需要查詢的結果。比如select from就是呼叫sql inte***ce

5 parser: 解析器。

sql命令傳遞到解析器的時候會被解析器驗證和解析。解析器是由lex和yacc實現的,是乙個很長的指令碼。

在 mysql中我們習慣將所有 client 端傳送給 server 端的命令都稱為 query ,在 mysql server 裡面,連線線程接收到客戶端的乙個 query 後,會直接將該 query 傳遞給專門負責將各種 query 進行分類然後**給各個對應的處理模組。

主要功能:

a . 將sql語句進行語義和語法的分析,分解成資料結構,然後按照不同的操作型別進行分類,然後做出針對性的**到後續步驟,以後sql語句的傳遞和處理就是基於這個結構的。

b.  如果在分解構成中遇到錯誤,那麼就說明這個sql語句是不合理的

6 optimizer: 查詢優化器。

sql語句在查詢之前會使用查詢優化器對查詢進行優化。就是優化客戶端請求的 query(sql語句) ,根據客戶端請求的 query 語句,和資料庫中的一些統計資訊,在一系列演算法的基礎上進行分析,得出乙個最優的策略,告訴後面的程式如何取得這個 query 語句的結果

他使用的是「選取-投影-聯接」策略進行查詢。

用乙個例子就可以理解: select uid,name from user where gender = 1;

這個select 查詢先根據where 語句進行選取,而不是先將表全部查詢出來以後再進行gender過濾

這個select查詢先根據uid和name進行屬性投影,而不是將屬性全部取出以後再進行過濾

將這兩個查詢條件聯接起來生成最終查詢結果

7 cache和buffer: 查詢快取。

他的主要功能是將客戶端提交 給mysql 的 select 類 query 請求的返回結果集 cache 到記憶體中,與該 query 的乙個 hash 值 做乙個對應。該 query 所取資料的基表發生任何資料的變化之後, mysql 會自動使該 query 的cache 失效。在讀寫比例非常高的應用系統中, query cache 對效能的提高是非常顯著的。當然它對記憶體的消耗也是非常大的。

如果查詢快取有命中的查詢結果,查詢語句就可以直接去查詢快取中取資料。這個快取機制是由一系列小快取組成的。比如表快取,記錄快取,key快取,許可權快取等

8 、儲存引擎介面

儲存引擎介面模組可以說是 mysql 資料庫中最有特色的一點了。目前各種資料庫產品中,基本上只有 mysql 可以實現其底層資料儲存引擎的外掛程式式管理。這個模組實際上只是 乙個抽象類,但正是因為它成功地將各種資料處理高度抽象化,才成就了今天 mysql 可插拔儲存引擎的特色。

從圖2還可以看出,mysql區別於其他資料庫的最重要的特點就是其外掛程式式的表儲存引擎。mysql外掛程式式的儲存引擎架構提供了一系列標準的管理和服務支援,這些標準與儲存引擎本身無關,可能是每個資料庫系統本身都必需的,如sql分析器和優化器等,而儲存引擎是底層物理結構的實現,每個儲存引擎開發者都可以按照自己的意願來進行開發。

注意:儲存引擎是基於表的,而不是資料庫。

mysql簡單配置檔案 MySQL配置檔案

mysql配置檔案 在windows下是my.ini,而在linux下是my.cnf。基本引數 port 3306 埠號 server id 1 basedir c program files mysql mysql server 5.5 基準路徑,其他路徑都相對於這個路徑 datadir c pr...

mysql 配置檔案

max connections 針對所有的賬號所有的客戶端並行連線到mysql辦事的最大並行連線數。簡單說是指mysql辦事可以或許同時接管的最大並行連線數。1 1.25mb記憶體 max user connections 針對某乙個賬號的所有客戶端並行連線到mysql辦事的最大並行連線數。簡單說是...

Mysql 配置檔案

mysql安裝使用 initialize 初始化資料庫,如果想通過配置檔案修改引數,而未通過使用 defaults file filepath 指定配置檔案,則配置檔名一定要為 my.ini windows 或 my.cnf linux mysql缺省會讀取my.ini配置檔案 修改字元編碼為utf...