由於MySql是當前IT行業最流行的、開放原始碼的、支援多線程高並發多使用者的關係型資料庫管理系統之一,(其實是沒機會接觸其他資料庫),所以最近準備開始由淺入深,好好研究下MySql,包括MySql的基本介紹,效能調優與架構設計等,當然,僅僅理論知識肯定不夠,這些東西,必須多結合實際操作後,才能慢慢掌握,這是一個時間的積累,我只是先把理論知識學好,為以後實際操作準備下,
所以最近會陸續發表些本人學習的摘要,如果能得到大神的指點,不勝感激
記錄檔:
錯誤記錄檔(Error Log):
在MySql啟動時開啟”-log–error”選項開啟,記錄MySql運行過程中的嚴重警告和錯誤,及啟動/關閉資訊,檔案存放於資料目錄,hostname.err
二進位日誌(Binary Log & Binary Log Index)
通過”–log-bin[=file_name]”開啟,用於記錄所有query,及每條query執行時間,佔用資源等詳細資料,檔案存放於資料目錄下,mysql_bin.*(*表示0-9)
更新日誌(Update Log):
類似Binary Log,MySql5.0之後不再支援
查詢日誌(Query Log):
用過”–log[=file_name]”記錄所有query(和Binary Log有什麼區別?),由於包含所有select,體積較大,影響效能,除非跟蹤特定的sql效能問題可短暫開啟,否則不建議開啟,存放於資料目錄,hostname.log
慢查詢日誌(Slow Query Log):
通過”–log-slow-queried[=file_name]”開啟,記錄執行時間較長的query,檔案存放資料目錄,hostname-slow.log
Innodb的線上redo日誌(Innodb Redo Log):
記錄Innodb所有的物理變更我事務資訊,保證Innodb的事務安全
資料檔案:
“.frm”檔案
與表相關的中繼資料(meta),如表結構定義資訊等,所有儲存引擎都有
“.myd”檔案
MyISAM儲存引擎專屬 ,存放表資料
“.myi”檔案
MyISAM儲存引擎專屬 ,存放表索引相關資訊
“.ibd”檔案和ibdata檔案
存放Innodb資料和索引,獨享資料表空間為”.ibd”檔案,共用資料表空間為”ibdata”檔案
Replication相關檔案
master.info檔案
存放於Slave端資料目錄下,記錄該Slave的Master資訊,如主機地址,連結使用者、密碼等
Relay Log & Relay Log Index:
mysql-relay-bin.xxxxxn檔案用於存放Slave端的I/O線程從Master端所讀取到的Binary Log資訊,然後有
Slave端的SQL線程從該relay log中讀取並解析相應的日誌資訊,轉化成Master所執行的SQL語句,然後在Slave端應用
mysql-relay-bin.index檔案與mysql_bin.index檔案類似,記錄日誌存放檔案的絕對路徑
relay-log.info檔案:
類似master.info,存放通過Slave的I/O線程寫入到本地的relay log相關資訊,供Slave端的SQL線程及某些管理操作隨時能擷取到當前的複製資訊
Other File
my.cnf
MySql系統配置問價,Windows一般位於”c:/windows”目錄,Unix/Linux預設在”/etc”目錄
pid file
進程檔案,存放進程id
socket file
Unix/Linux環境下才有,使用者在該環境下不通過tcp/ip網路直接使用Unix Socket連結MySql