tid=96870&有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。
7 v9 ]/ h. A& P- f* G
' y. v) B8 @6 v4 C; R% s要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:
% U* p% V4 j" r! c) `: i
* k* c: v6 o# E3 Y6 h/etc/my.cnf V$ v" F$ S/ @" Z
/etc/mysql/my.cnf
- I, J* X6 |# z" o0 b/ B. J+ d, k
% _: n5 f) A) T/ P3 D9 d4 `先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:/ V' |3 F& j( {7 n' E
slow_query_log = 1" r) v5 ^) Z; x% p
slow_query_log_file = /var/log/mysql-slow.log$ g# L5 k* \6 c
long_query_time = 2 " ^6 e% C0 i1 S+ [. b+ l* s
以上幾行的意思分別是:9 F* W. j* r8 p" V
+ `0 n5 W) @0 _0 C Eslow_query_log = 1
/ {. `) \: W- e, M* Z開啟紀錄執行慢的 SQL 語句: k0 j' W2 x1 F5 q c q7 ^$ G
/ ^$ `6 P6 m5 V( {$ p
slow_query_log_file = /var/log/mysql-slow.log
4 A V* [# J4 p- N3 b設定紀錄檔的位置在 /var/log/mysql-slow.log% j c# Z( M i: k- n: h
] R; O" N9 s0 q
long_query_time = 2
]6 ^$ Q1 m" v& i! Y* p# M$ s設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。
# `% D5 `! D/ e8 \/ F: n! L/ _! {3 K
修改好 my.cnf 後, 重新啟動 MySQL 便完成了。
- d8 n. ]$ H) J5 I6 n
4 W5 U1 I9 S3 \ f/ T1 N, _; \: j1 Z! W. E+ \
|