有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。6 e, O; N7 m5 \% m/ @% C6 |% l
1 J! ?. {; \- H8 i3 c
要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:9 U3 z( b3 I3 m. x! |
2 {* { F3 ]& M/ [+ K( k/etc/my.cnf
- X3 U+ q+ v; c6 Y, c/etc/mysql/my.cnf& \$ L, ?3 X3 _9 W
1 L" w/ N9 n O7 h+ r( @; w; `
先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:# [& e+ _5 L C
slow_query_log = 1
. J) ^0 U0 Y5 p) v! kslow_query_log_file = /var/log/mysql-slow.log: f" {1 ?) c) \+ {
long_query_time = 2
& X. q2 ?$ `& Z9 l以上幾行的意思分別是:
+ h3 P8 d% g) N# k* D% c
) P' Y! v! g, Z9 E) eslow_query_log = 1
; C' T* z: h! f; K0 v! U7 }) G開啟紀錄執行慢的 SQL 語句:
7 [$ N* z* ?* {+ V7 r) w \5 O" {! Y9 _' S3 b: Z! b- _/ a. T
slow_query_log_file = /var/log/mysql-slow.log
# D4 O6 h# f* L% s" G設定紀錄檔的位置在 /var/log/mysql-slow.log& E: A$ y+ e7 _# e
, a$ B. Q) r0 ^long_query_time = 2
% X# z) Y, z7 U; D設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。
+ q2 s- k7 C% Y0 L8 O' Y; ]5 f% K1 e! I* I. U- v& o
修改好 my.cnf 後, 重新啟動 MySQL 便完成了。
: `# U# Z+ g/ {1 {% h- N$ R! {
7 j2 q9 A& m8 M. i$ I. o0 L* H" D3 h* @( u5 p# V
|
|