tid=96870&有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。
1 @- W! r: K: g4 ?7 ]/ N9 b4 {, @# l2 R0 e
要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:
7 C" l4 @" j& W/ L4 m1 n) f0 h1 i
+ X8 [+ A% j( T( G( L8 S6 N/etc/my.cnf4 F# Z. C* I) Z) L
/etc/mysql/my.cnf @4 X8 x6 b+ c9 Q! x
% s: f0 x& \- T" G3 Z) y$ N先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:8 _: _/ j3 P& o5 q4 K( ^
slow_query_log = 14 J' Z+ d9 D7 }) Z6 M5 D
slow_query_log_file = /var/log/mysql-slow.log
9 b- S! I a8 C! Q) zlong_query_time = 2 ! x, I8 K9 x) N
以上幾行的意思分別是:" q; t) w8 G! @8 B+ |
3 }1 f6 K- v% V! Zslow_query_log = 1
: f/ c' a8 a, p1 q1 `; Y. R% \( i( ?% z開啟紀錄執行慢的 SQL 語句:
' _3 P: i9 A1 Y5 t8 {2 \3 R# i9 k% I1 h1 O
slow_query_log_file = /var/log/mysql-slow.log
# U: t3 x z9 G/ {# E* ]- {1 l1 {; F設定紀錄檔的位置在 /var/log/mysql-slow.log7 I' S5 a8 X3 W
$ n" b5 r# F& u; Elong_query_time = 2
; z9 C1 E8 M0 t K3 K設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。' g9 v$ l, h) e7 n* R9 L
) y$ U5 I) L/ g( w$ p/ \修改好 my.cnf 後, 重新啟動 MySQL 便完成了。5 `) f3 m1 V1 @
" g/ }4 [- }& F
$ q, A; g4 p8 J t7 \ |