有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。
$ n8 r" b/ {" c, x( i1 [/ ~: T. q5 t8 P+ b
要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:" z5 z9 K3 k' Y# w. ~! E
$ A# X4 ]+ N. q, F1 [& g7 A( ]
/etc/my.cnf0 ?4 w/ ]. X8 W( S
/etc/mysql/my.cnf0 _/ }/ k; E/ @) G8 M: i! \
" r) i2 [0 Y1 l$ Z1 _' h9 C3 y, e
先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:
. R' _# | X$ E) jslow_query_log = 1
' v+ P+ K/ v5 e" o5 Hslow_query_log_file = /var/log/mysql-slow.log
& k7 V' D( J0 L1 {: i: s6 zlong_query_time = 2 & `+ X3 e! |: l- N2 ~
以上幾行的意思分別是:( z/ M& f* a; ?1 A/ v( r
7 f# K: c$ W4 e% {2 |
slow_query_log = 1
; w: P$ q1 ^* R" T. v- w; S開啟紀錄執行慢的 SQL 語句:; _/ u' {3 ?( y
- E3 `2 \$ S0 `9 u4 [0 t1 Aslow_query_log_file = /var/log/mysql-slow.log
5 l c4 ^; j4 M) p! J; i! t設定紀錄檔的位置在 /var/log/mysql-slow.log
. G( [. r$ u/ y7 E" H) w
; w1 N2 N$ t1 _3 \3 ~0 F6 Ilong_query_time = 2* J% a o( P7 m7 {' i- F
設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。
; \$ m/ l# i) @$ i: j9 E2 }/ E! g" `0 p3 c- ^$ E
修改好 my.cnf 後, 重新啟動 MySQL 便完成了。9 k# S" j8 I5 ]/ e8 h. ]
) y* K# f! m! C$ R
F }# L8 q/ H. P& E1 y
|
|