]??STATUS??//顯示給定數據庫的表的詳情 ????SHOW?[GLOBAL?|?SESSION]?VARIABLES??//顯示系統變量
? ? ????為了查看較少的信息,可使用 ?like ‘‘ ?從句,like 語句中可使用標準MySQL正則表達式符號和控制符
SHOW?ENGINE?<engine_name>?LOGS????//顯示指定存儲引擎的日志信息 ????SHOW?ENGINE?<engine_name>?STATUS?//顯示指定存儲引擎狀態信息 ????SHOW?ENGINES????????????????????????//顯示所有可用的存儲引擎的列表及狀態 ????SHOW?BINARY?LOGS????????????????//顯示服務器二進制LOG列表 ????SHOW?RELAYLOG?EVENTS?[IN?'<log_file>']??[FROM?<pos>]??[LIMIT?[<offset>,?]?<row>] ????????????????????????????????????????????????????????//僅限制查看Slave上的中繼日志 ????SHOW?MASTER?STATUS???????????//顯示Master當前配置,顯示當前二進制日志文件,文件位置等 ????SHOW?SLAVE?HOSTS????????????????//使用--report-host?選項顯示連接到Master的slave列表 ????SHOW?SLAVE?STATUS???????????????//顯示復制中slave的系統狀態</row></offset></pos></log_file></engine_name></engine_name>
? ??
MySQL GUI工具
MySQL?Administrator ????MySQL?Query?Browser ????MySQL?Migration?Toolkit????//用于自動從其他數據庫系統上遷移數據
? ??
第三方工具
MySAR?系統活動報告 ????mytop????監控線程統計信息和Mysql常規性能統計信息 ????innotop???用于監控InnoDB性能和MySQL服務器 ????MONyog??(MySQL?Monitor?and?Advisor)?mysql監控工具,主動監控方案 ????MySQL?Benchmark套件?MySQL基準測試 ????????./run-all-tests?--server=mysql?--cmp=mysql?--user=root?--socket=<socket></socket>
測量數據庫性能
EXPLAIN???分析關于如何執行SELECT語句的信息 ????ANALYZE?[?LOCAL?|??NO_WRUTE_TO_BINLOG?]?TABLE???? ????????#[?LOCAL?|??NO_WRUTE_TO_BINLOG?]?可防止命令寫入二進制日志。 ????SHOW?INDEX?FROM??TABLE ????OPTIMIZE??[?LOCAL?|??NO_WRUTE_TO_BINLOG?]?TABLE?<table_list> ????????#重構一個或多個表的數據結構,整理存儲空間 ????SHOW?FULL?PROCESSLIST;??查看所有進程信息</table_list>
數據庫優化
? ? 1、謹慎而有效的使用索引
? ? 2、使用規范化(范式),但不要過頭
? ? 3、使用正確的存儲引擎
? ? ? ? ? ? alter table t1 ENGINE=MEMORY;
提高性能的最佳實踐
? ? 1、一切都很慢(檢查問題)
? ? ? ? * 檢查硬件
? ? ? ? * 改善硬件環境(如添加硬盤)
? ? ? ? * 考慮將數據遷移到獨立的磁盤上
? ? ? ? * 檢查操作系統配置是否正確
? ? ? ? * 考慮將有些應用遷移到其他服務器上
? ? ? ? * 考慮可以向外擴展的復制
? ? ? ? * 優化服務器性能
? ? 2、慢查詢
? ? ? ? * 規范化數據庫模式
? ? ? ? * 使用EXPLAIN識別丟失的或不正確的索引
? ? ? ? * 使用benchmark() 函數測試部分查詢
? ? ? ? * 考慮重寫查詢
? ? ? ? * 對標準查詢使用視圖
? ? ? ? * 啟用Query Cache
? ? 3、慢應用
? ? ? ? * 開啟 Query Cache
? ? ? ? * 考慮并優化存儲引擎
? ? ? ? * 確認是否是服務器或操作系統的問題
? ? ? ? * 定義應用程序的基準,并將它與已知基準比較
? ? ? ? * 檢查內部(在應用程序 內部編寫的)查詢,并最大化他們的性能
? ? ? ? * 分而治之——一次只檢查一個部分
? ? ? ? * 使用劃分類分散數據
? ? ? ? * 檢查各個分區的索引
? ? 4、慢復制
? ? ? ? * 確保網絡運行狀況最佳
? ? ? ? * 確保服務器配置正確
? ? ? ? * 優化數據庫
? ? ? ? * 限制 Master 的更新
? ? ? ? * 將數據讀取劃分到多個Slave中
? ? ? ? * 檢查Slave 的復制延遲
? ? ? ? * 定期維護日志(二進制日志和中繼日志)
? ? ? ? * 在帶寬有限的情況下,使用壓縮
? ? ? ? * 使用包容性和排他性日志選項,最小化復制內容
數據引擎的優化和監控
? ? MyISAM實用工具
? ? ? ? * myisam_ftdump: 顯示全文索引信息
? ? ? ? * myisamchk : 執行MyISAM 表的分析(只能在脫機狀態使用)
? ? ? ? * myisamlog : 查看MyISAM 表的更改日志
? ? ? ? * myisampack:壓縮表以減少存儲量
? ? Key Cache
? ? ? ? 1、預加載Key Cache
? ? ? ? ? ? #將salary表的索引加載到key cache中,ignore leaves: 表明只加載索引的非葉子節點,可通過修改表的方式從Key cache中移除相關索引
????????????mysql> load index into cache salaries ignore leaves;
? ? ? ? 2、使用多個Key Cache
? ? ? ? ? ? #使用耳機主緩存
mysql>?set?global?emp_cache.key_buffer_size?=?128*1024;?//128K ????????????mysql>?cache?index?salaries?in?emp_cache; ????????????mysql>?set?global?emp_cache.key_buffer_size=0;
? ? ? ? ? ? #確認一個二級緩存是否存在
? ? ? ? ? ? mysql> select @@global.emp_cache.key_buffer_size;
? ? ? ? ? ? 重啟而不丟失二級緩存配置的方式:將配置語句保存在一個文件中,使用mysql的配置文件的[mysqld]部分的 init-file=命令執行該文件。
以上就是MySQL 性能、監控與災難恢復的內容,更多相關內容請關注PHP中文網(www.php.cn)!