有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。
: a" l: L0 \5 z; C1 i4 B1 A* ]- Y. W- V9 A% R
要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:
2 @# m& u: D3 \- X/ n _
: @8 W. y# X& I7 K5 l/etc/my.cnf
) g7 m( h9 i. }, q- w5 d8 b/etc/mysql/my.cnf$ ~% [/ a- p5 {2 Y- r8 o
* C9 X7 W8 Z/ g+ Q" q& a! q先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:
$ L% V% M0 q4 t3 \slow_query_log = 1
- A# B- r" w; Xslow_query_log_file = /var/log/mysql-slow.log, s% }9 `" F. Z, q. q7 n5 M
long_query_time = 2
; b+ F( v8 }1 ^( Y6 \# w以上幾行的意思分別是:' h4 @3 B' ]4 F+ ]8 N
1 R' L; `' X. ~; T
slow_query_log = 1
' {- v, |% B) T4 E* u; k開啟紀錄執行慢的 SQL 語句:
4 K7 l/ r* [0 c0 Z1 U* g4 Y
0 a5 i+ M9 n) Y: qslow_query_log_file = /var/log/mysql-slow.log
# M6 e! f- R- T( ?& \" K5 h設定紀錄檔的位置在 /var/log/mysql-slow.log
; J, M/ W3 d& W; H$ T8 @
+ s+ Q/ S3 |1 ]6 ^/ Blong_query_time = 2
9 V% X0 {- V9 Q2 q" X# O) E設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。, R8 c/ o0 S' B
& n1 _ a; V5 W% h9 d9 {修改好 my.cnf 後, 重新啟動 MySQL 便完成了。! O% b9 {3 ~6 U% ^+ U* t
# ~# _: u7 ?- ^5 G( m( E
1 y; ^* q3 {& v$ W+ u! x
|
|