tid=96870&有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。
, U- \; r% Z9 y1 |' @. a$ D Y- {
5 p/ e, h' C* V7 I9 D要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:/ |3 I% G- M+ a: J5 D8 y
7 D' r" ^5 }7 T/etc/my.cnf0 t& L# H# ~" K* l( R0 [
/etc/mysql/my.cnf- S6 m: C7 Y, W. y0 w
* c& Q4 F: X4 I* \6 c先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:7 w: B7 w( x9 Q) H8 Q
slow_query_log = 1; |5 p A) v, A4 a% ?, t- ?* z
slow_query_log_file = /var/log/mysql-slow.log
; R* S) Z3 m" I5 u) ~long_query_time = 2
9 H# W5 U) K9 Q, L以上幾行的意思分別是:
. _; f# u4 z ], F! [8 s( i u3 [& k" M2 ]' E
slow_query_log = 1+ \; H5 v; O. A1 Q+ @# a* S& D
開啟紀錄執行慢的 SQL 語句:0 g9 x6 @1 A4 F$ }, j1 i; `, ?/ {
9 }' }7 B5 X: z( j. A4 R
slow_query_log_file = /var/log/mysql-slow.log/ r3 A; n0 F" j8 m# N
設定紀錄檔的位置在 /var/log/mysql-slow.log, N5 Q( N1 n5 T1 I6 m
" L) k( G. u1 b8 |( ~long_query_time = 2
. ~ f/ I. i" }) g設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。4 L9 e3 J" \' E: f$ ^; [1 y; X
" f- {9 r, z3 z5 Z) g4 t修改好 my.cnf 後, 重新啟動 MySQL 便完成了。
( w9 z6 E* Z* e( h7 X/ e$ e$ }' V: U5 p) a$ \- Y1 V! ]$ L
" _3 A7 o! T- p4 p. ]3 m) f, p
|