tid=96870&有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。
1 l7 V4 j; @: J
, Q0 h: [. L. p; J9 B要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:( w7 }' o# E2 b4 q9 [. t
9 Y! s3 [2 G& V# }( L. \/etc/my.cnf
0 \; w/ \8 f8 ]' K1 p/etc/mysql/my.cnf
* F5 z$ M% y9 ?; B0 n, w& ]' j
; J5 L v% }. d* J! n先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:2 z ^8 [! s& K/ K# J3 S, _
slow_query_log = 15 [8 N' |8 K B
slow_query_log_file = /var/log/mysql-slow.log
9 d( |" B5 a: M4 S3 A! ]long_query_time = 2 ( N& |8 x% }0 ]1 F6 E
以上幾行的意思分別是:0 M6 T0 H+ h& P2 m( N. s$ j
+ k# g# i/ m' H" R/ [
slow_query_log = 1
6 C {7 f) x _開啟紀錄執行慢的 SQL 語句:
& P% v- t2 I' x! q* |" {/ I
! F' s# e4 u- Y6 c8 M0 |+ jslow_query_log_file = /var/log/mysql-slow.log# L5 |. _, z5 f& U3 B
設定紀錄檔的位置在 /var/log/mysql-slow.log$ `: l1 D, S4 g+ U6 P3 u
" I, j& T/ h4 ^% {* P4 B/ ^( ?long_query_time = 26 z) |0 h6 w: r w5 G! d
設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。) t5 ?+ R! L4 h' v" u/ r3 r1 f
& J3 T2 D9 T7 d; O
修改好 my.cnf 後, 重新啟動 MySQL 便完成了。
1 K7 Y& @ H2 y3 g+ n, [2 |( h" v) j) \8 a
0 h, `6 k4 C9 z* a3 F1 L3 [
|