有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。3 Y% H& }" N& t" U" N
P( x2 O8 U/ Y
要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:" e7 v$ f3 ~+ d! @/ J4 e
0 v6 J# t H2 L" m5 J6 `/etc/my.cnf, g) K( c5 F/ D4 H6 h
/etc/mysql/my.cnf) Q; `& X6 r' K e; n' y4 I
3 F$ N* d% ]% H) d: o. M先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:
# H. E U/ d! w' p. Hslow_query_log = 1
6 C4 i; S$ F; M, x# o" Jslow_query_log_file = /var/log/mysql-slow.log. i) b! w7 D- f/ h! t3 Z
long_query_time = 2 ; }4 v2 W C2 [+ c0 R! G8 V. V
以上幾行的意思分別是:
: a6 w9 `9 j+ t- {$ Z2 |5 n$ r" e) ]3 m9 ]" e! C8 z
slow_query_log = 1) `/ ]% }0 @+ S/ n/ l' P+ _
開啟紀錄執行慢的 SQL 語句:
+ E* S% M; I: R* f3 R' a
5 p( F) p' h3 j* b( l4 qslow_query_log_file = /var/log/mysql-slow.log
9 y, k1 K$ ~' e# n' B$ \/ D設定紀錄檔的位置在 /var/log/mysql-slow.log
1 U, M, {5 R+ u8 G6 C+ u5 G
+ r8 p) }+ f! l$ Klong_query_time = 2
7 d8 {6 g+ w& m. a1 a/ ?9 q設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。
; t5 v* _# c3 {1 V
, E% D4 e. A; i+ ] v6 V6 l1 [修改好 my.cnf 後, 重新啟動 MySQL 便完成了。
) H+ m5 o4 }/ d, y5 k) L F7 m! l* ?% k. n, Q3 R2 ^9 ?, ]4 V# A
n! ~3 {$ H0 U# t) U
|
|