tid=96870&有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。
9 P& R7 V6 C7 x2 Y% n
! f+ w* j t. @4 v4 u要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:3 t/ L1 m5 G& Z! R$ U3 O( C9 }
# {5 \# z; ~; ]& }% V% l3 C! J/etc/my.cnf
% L0 w1 z* A! s3 Z. K5 h/etc/mysql/my.cnf
) e5 f+ @8 r8 q3 u+ ] A. Y e$ P# i. K4 N( U) z
先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:$ D o( y- |7 a5 }0 e
slow_query_log = 1% z; h K6 _$ c0 A& J" c0 Y
slow_query_log_file = /var/log/mysql-slow.log) j# i* l, _0 A0 E& N( N1 e# I% I
long_query_time = 2 & I0 p" Z$ K% \* B5 m/ F0 n
以上幾行的意思分別是:
* B" M: N3 k" w8 ] }7 ]3 q8 x( E" {! c
slow_query_log = 1) ~6 A" t I7 P- Z) P
開啟紀錄執行慢的 SQL 語句:! T4 J& b" x9 a
1 S7 ?$ ]! M7 z
slow_query_log_file = /var/log/mysql-slow.log- h1 b( ?" g. w: m' P3 H$ K8 I3 i
設定紀錄檔的位置在 /var/log/mysql-slow.log
( r% n1 ?( q i# u4 x ^% m- n4 ?. y/ M; w
long_query_time = 2# x- y4 z0 `1 P! U3 o) X( O
設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。7 A- L2 S9 a q# E
4 F; ] W7 l, W, V
修改好 my.cnf 後, 重新啟動 MySQL 便完成了。) U& n" ^( V5 C2 V/ C9 |" b
7 I3 A: d7 H" S& v/ k- s) E+ ^$ f) N; b* y
|