有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。
4 `3 @' C% I S( S9 p5 T& b8 I+ P- ~5 a$ `# v
要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:7 x/ N) [, F$ \
6 E( r# W. @7 j7 S* s
/etc/my.cnf
4 Q. A+ e6 T% [ {) p' `# ^3 u1 d& f/etc/mysql/my.cnf# i5 b! r+ E' i8 s; q+ [* ]
& z! v" k% T1 K# W+ Q
先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:0 J% r( x8 G0 s7 h& T" z
slow_query_log = 16 ~3 y- a0 e) y- o2 n2 B8 w
slow_query_log_file = /var/log/mysql-slow.log
5 q- U' X& X. s }long_query_time = 2
9 x8 K& r; O3 @7 `" p2 e以上幾行的意思分別是:
$ [( N& H( P- a: f X1 K1 w5 n' U, {, ]- ]! u% }( s
slow_query_log = 1
$ ?- v' F8 Q; K. |0 S開啟紀錄執行慢的 SQL 語句:' e( |( D. u! O- C
! ]* G; B) H4 s) B5 Jslow_query_log_file = /var/log/mysql-slow.log
: M, f4 Z6 j' l設定紀錄檔的位置在 /var/log/mysql-slow.log: v' J3 i E( ~7 [# f: Q
$ p5 ]% a% _% h. ~% @. x6 p: @long_query_time = 2- N: J* i3 S2 g3 {
設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。% r' Z' Q6 |3 r8 P
7 B* H9 w$ {1 ~" z6 x! E, A* e修改好 my.cnf 後, 重新啟動 MySQL 便完成了。- Y) g7 f2 \4 D1 D, V: d1 E/ B) e
J8 P4 D0 e' R% D) n6 r( {! ~; F. T# P+ c) O+ r% w
|
|