tid=96870&有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。9 k# a7 T3 ?! h) A
! Q' e# j7 f, O! S4 v' M6 S- N
要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:3 q+ h9 k8 j0 J$ B4 P$ R, G
5 Z) C5 ^, x: f& H
/etc/my.cnf
- B1 O/ J H. `8 J" W/ A) [/etc/mysql/my.cnf X& U0 b9 L" b# t: | U5 f1 l
. k/ M" [* w% h先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:
% Z; F* B2 t, a1 c" D0 p0 oslow_query_log = 1
! q/ P" [( m. f' N- lslow_query_log_file = /var/log/mysql-slow.log/ F# i3 e$ K) P i2 l0 D/ y, O% ~
long_query_time = 2 & g% m5 {( j+ I% e
以上幾行的意思分別是:7 y& e. @+ l9 H! A, _! Z4 O
" c0 o4 w+ e/ o' m8 bslow_query_log = 19 |2 F+ _" a4 Q, e" r
開啟紀錄執行慢的 SQL 語句:3 q$ `8 f# ~9 r5 }" N& z0 l
& w" K! T5 E! s5 Rslow_query_log_file = /var/log/mysql-slow.log
k5 D6 ~) C7 E) e設定紀錄檔的位置在 /var/log/mysql-slow.log# o2 R% J T% j, ~" J- J
' a+ _( j8 h* `$ |. s8 s- r# x( }long_query_time = 2: a& w/ f, W. Q# Y. S! {; R" A
設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。
4 ]' `$ V6 e( w A, P( S7 Q0 D* v7 L/ d, U# h* [: f
修改好 my.cnf 後, 重新啟動 MySQL 便完成了。
$ k- P: G: M' l6 h% t7 y2 _6 u: \' \
8 ?3 k; n% @1 | |