tid=96870&有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。) G6 h4 s* ~! N3 F
3 h. ~. {2 ?; T( N& Z
要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:0 S# j$ @/ } R. C
4 m( c, J: U) V+ b
/etc/my.cnf* e/ i# f# h% m3 ]1 L- e" w
/etc/mysql/my.cnf
. v- W6 ~7 m. m- N3 y1 d; j9 V, z
) Q, p* T" p; h" Q3 q$ h先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:6 _8 v4 _, |2 q
slow_query_log = 1
2 z5 ?% [) I9 Z: M& D! Dslow_query_log_file = /var/log/mysql-slow.log% U; b) f, j& B q4 a& G
long_query_time = 2 & f8 u6 Z% A7 M/ C0 U
以上幾行的意思分別是:
' h4 Q$ L1 X! L- a2 X( W, S. m
) w1 g ?5 Q+ ]8 |( S8 v9 p5 ~slow_query_log = 13 S( C" l9 r" l# V; p) v. _/ N& N
開啟紀錄執行慢的 SQL 語句:! S9 @5 p& S( N# I
6 E* T0 K: [! R" M0 U6 Z5 islow_query_log_file = /var/log/mysql-slow.log
# o9 \* K; q0 f0 o, ~- @設定紀錄檔的位置在 /var/log/mysql-slow.log4 _0 m: Z; {4 K6 P8 A
( a1 T h9 \4 x* p% U/ ilong_query_time = 2
* ~* y1 ?( i- }" [設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。
' h" ]# w5 R. |5 W; M. U2 K A/ J! z/ {8 ^7 x- l/ V) z. a
修改好 my.cnf 後, 重新啟動 MySQL 便完成了。
' O" i9 r: _5 o3 E& Y
6 ^' v5 z1 @5 P( P7 `+ M( o2 j; j; d8 F9 T# U$ |0 F0 A7 v% @
|