tid=96870&有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。) T% P0 m! L+ m* W. P& b6 K8 {: L
/ n" y6 _' ?9 I j
要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:* U3 A& V2 z5 v7 h* G8 J
1 }/ y( g' u' K5 l3 [1 f; i% c
/etc/my.cnf& S9 M) i4 F9 ?( O: a
/etc/mysql/my.cnf
0 B) J" ~* O2 U" T Q, J. A' G: X7 E4 g# c
先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:* z1 Q6 q* O" a: B2 v0 I; t' U
slow_query_log = 1) r( Q0 [. M: {
slow_query_log_file = /var/log/mysql-slow.log* x w+ e% }% Y$ j
long_query_time = 2
% R. w# g/ I9 f' V" n( X' U以上幾行的意思分別是:* M: P8 N5 F/ N
9 P! Y! f) N% q4 Eslow_query_log = 1
' b; {/ D `' h6 ^開啟紀錄執行慢的 SQL 語句:% B0 V& E1 C9 [9 Y
+ p; u+ I5 a1 r" B7 Vslow_query_log_file = /var/log/mysql-slow.log
9 T* E) z7 y' [% l設定紀錄檔的位置在 /var/log/mysql-slow.log
8 ]# a A H( L3 ?) G1 M! ?/ E# u9 V0 q6 G- T* x
long_query_time = 2 [ Q/ A* |6 \: b0 l
設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。+ W& R; B5 D1 U. e; E0 G, g, Y1 w
4 ?2 Q/ e5 _/ t修改好 my.cnf 後, 重新啟動 MySQL 便完成了。
3 f% J2 O& q0 p/ J
t+ o4 H1 K! i) N4 g& T0 d! I3 _5 b8 B! U7 T" d9 c7 [3 n
|