tid=96870&有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。* h6 G6 i" r {4 r0 F# W2 k
" V0 r2 P' g/ d. {* X/ q c( W. C* w
要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:
" G5 [4 v' |' K& ^' d5 Q6 d) V1 _0 l& M$ J0 C& M+ {4 Q, G9 e& |
/etc/my.cnf- }0 y% h) f: O: F" s6 z9 l
/etc/mysql/my.cnf* `! \- f2 @) R0 t3 {* }1 b- g
/ a B+ s! r e* s# @
先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:
. j: D0 X+ J% yslow_query_log = 1/ X/ f) l- H b6 L- E0 v1 e2 f l: N
slow_query_log_file = /var/log/mysql-slow.log
. v! U/ A( f' W' F8 ulong_query_time = 2 5 \" l: k- P' S7 N
以上幾行的意思分別是:/ {" P5 M0 T" S F+ u) Q$ i
[. V1 K7 w$ ]
slow_query_log = 13 `. g: n! H' Q: n+ F Q
開啟紀錄執行慢的 SQL 語句:
: ]. A" K( _* X, \8 v8 t I- C- k4 `: t7 {: R2 G* ^9 o/ h. F! R
slow_query_log_file = /var/log/mysql-slow.log
3 V: c* l3 @5 h R* O1 X5 E+ `/ @設定紀錄檔的位置在 /var/log/mysql-slow.log* W/ H; Q7 f6 K3 G, {1 l: v R
! p( [! W0 Z& s: E8 Elong_query_time = 27 O/ X8 Z/ b+ \ O
設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。9 m' Q% l+ f, K7 _
2 N' u' j% Y, T2 I& h
修改好 my.cnf 後, 重新啟動 MySQL 便完成了。# v8 g# v! @* _3 X2 \7 [
$ R. ` K/ w2 Z1 A' V" V& X3 F3 }
+ J+ r, c: O' }5 [3 b |