有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。
- A* V+ B Q8 Y/ Q+ {: h* g+ ?* Y
2 `& i6 k) I; Z* a' L, n: Y要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:, Q+ ^1 c. r7 o) s% H' t7 D
( z- I. t5 z0 R" _( A" N8 r
/etc/my.cnf* d6 \0 R- s. V/ `! q, @
/etc/mysql/my.cnf- e& l1 y7 n1 ~" @, M4 V
3 @* D9 a7 Q4 |' \
先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:
y# B' c+ P" H4 y. Cslow_query_log = 1
8 |. v! Z2 i/ O7 e; X7 Pslow_query_log_file = /var/log/mysql-slow.log3 f j6 c* M: K/ g$ b* I
long_query_time = 2 % M% J( D3 D, a/ p) n+ U C
以上幾行的意思分別是:7 P4 H. | W; y: ~# [" Z
% h# H" i! N, u
slow_query_log = 1$ C5 e8 V k* d) g" }3 v' \% Y- y
開啟紀錄執行慢的 SQL 語句:
9 h1 O7 P8 {+ U4 W
& m; `$ P8 S# A- Islow_query_log_file = /var/log/mysql-slow.log
# W* C+ L' P7 v7 ?; h" E設定紀錄檔的位置在 /var/log/mysql-slow.log0 Z& D% r) L. W+ K& p' [+ f
) c$ c. Z, }6 C' p7 flong_query_time = 2& ?7 L" z" z B1 M1 d
設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。6 d( I% t6 h) t4 F4 P* h: H: X
7 h( g8 M8 x. o" p& ?修改好 my.cnf 後, 重新啟動 MySQL 便完成了。
; V, r( k0 h' E7 [1 E5 R0 C {+ ]
) O, }0 f( D. p: o$ g, k+ W- d
3 p: C' ]* Z( ]/ O |
|