有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。9 D* D1 u0 O @1 s% F
' L' K0 E% K3 |2 o6 `( j2 d1 [7 P要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置: w' u/ i# g/ Q1 Q* [$ W5 a
# m9 N5 S$ P; t: S5 m& r
/etc/my.cnf- c, ^! h$ ?- x2 [+ S
/etc/mysql/my.cnf1 X i6 _) c4 l$ o$ J. E' ^& e9 `- A
( i+ }3 a8 m0 R/ F w
先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:
+ Z+ n$ L; r/ W% d3 {8 w! Pslow_query_log = 1
6 o) V0 H x! ^1 Zslow_query_log_file = /var/log/mysql-slow.log; c9 Z- h3 c' W8 r8 u
long_query_time = 2
1 D% j: y' ]$ S S8 n5 d以上幾行的意思分別是:
) [: Q0 t! ~. ?) \. Q0 _4 d* ?2 j0 Z( R
slow_query_log = 1
2 a( }8 }& T' `) K開啟紀錄執行慢的 SQL 語句:1 @+ ~7 H& D/ S! N# m4 M
! y& f6 b' n* x! T8 Rslow_query_log_file = /var/log/mysql-slow.log
+ N1 Q' E4 Q( {9 g" p- l; s) p7 ?設定紀錄檔的位置在 /var/log/mysql-slow.log8 b! z7 n$ R8 i. R0 T/ G( H
' w& i6 t$ E Glong_query_time = 2
3 Z$ E& E2 G/ }4 v5 f, `7 o% x設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。
. t" ]$ ?, T! m5 M( Q3 o! a
: a' O5 m5 W g- l. W# ?; u修改好 my.cnf 後, 重新啟動 MySQL 便完成了。
, A5 p1 n) l5 ^% i+ ~' h# I6 a& |% a! I8 l# Y9 B* K! i& E: v) ^8 l
/ q1 N/ r" V. z; K |
|