程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL須注意的配置與管理

MySQL須注意的配置與管理

編輯:關於MYSQL數據庫

1.日志同步與寫入磁盤問題

1.1innodb_flush_log_at_trx_commit=n

這個n值決定什麼時候把日志信息寫入日志文件,以及什麼把這些文件物理地(術語:同步)到硬盤上。

N=0----每隔一秒寫依次日志並且進行同步一次。意味:減少硬盤寫操作,但是可能會造成數據丟失。

N=1----每執行完一條commit命令就寫一次日志,並且進行同步。意味:可以防止數據丟失,但是增

加了硬盤的I/0操作次數,可能造成硬盤寫操作頻繁,造成性能下降。

N=2----每執行一條commit命令就寫一次日志,每隔一秒進行一次同步。

1.2sync_lbinog=n

這個參數用於設置每隔N次日志寫操作就把日志文件寫入硬盤一次(同步日志數據)。

N=1----每寫一次日志並且進行同步一次。

N=0----由操作系統來負責二進制日志文件的同步工作。

1.3innodb_fush_method

InnoDB引擎日志文件的同步方法(僅適用unix/Linux系統),。有兩種取值:fdatasync(用fsync()函數進行同步);0_DSYNC(O_sync()函數進行同步)。默認為fdatasync,建議也是設置使用該方法,因為該方法比0_DSYNC塊很多。

2.慢查詢與未帶索引查詢SQL追蹤

1.1慢查詢選項設置

在my.cnf文件中增加:

long_query-time=n#默認為10秒,N表示為多少花費秒及以上的語句才算慢查詢語句

#(SELECT/UPDATE/INSERT/DELETE等)

log-slow-querIEs=/usr/data/slow/slow.log

1.2未帶索引查詢選項設置

log-querIEs-not-using-indexes#SQL語句也會記錄到slow.log中

3.關於授予存儲過程編輯權限

可能大家都碰到過,授予某帳號CreateRoutine/AlterRoutine權限還是提示沒有權限創建或修改存儲過程,被

迫授予Super權限。這種情況下,需要設置參數:log_bin_trust_routine_creators=1,該選項默認值為0;執

行語句:SETlog_bin_trust_routine_creator=1。

4.InnoDB在關閉服務器時,緩存區數據寫回時機設置

innodb_flush_shutdown=0/1,決定以最快的速度關閉InnoDB引擎,默認設置是1,意思是:不把緩存在INSERT緩存區的數據寫入數據表,這些數據將在MySQL服務器下次啟動時再寫入(這麼做沒有什麼風險,因為INSERT緩存區是表空間的一個組成部分,數據不會丟失)。0----表示在關閉InnoDB之前寫回,但是可能出現還沒寫回完畢,操作系統就會強行關閉掉了InnoDB,從而會導致數據不完整。

5.MySQL復制時主機的innodb_flush_log_at_trx_commit與sync_lbinog設置

建議把設置如下:

innodb_flush_log_at_trx_commit=1

sync_lbinog=1

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved