有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。2 r" { D+ n1 [: U# H
5 X5 i% B8 ^) i$ y& V5 L3 X+ f要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:
* g) c e; X6 B# p- t, Y9 [
' E0 i ~8 X( N9 a% r6 a$ e- @/etc/my.cnf) a. n3 A# ?$ ~5 R; c
/etc/mysql/my.cnf
2 a( d- E6 I0 `/ Q1 Y! ?" F+ N
& z* Y" n; n0 b B& p先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:
5 ^" S" h4 ?; a4 c8 Zslow_query_log = 1
- Y9 {7 h; F" X2 L0 X0 S1 U8 zslow_query_log_file = /var/log/mysql-slow.log
/ F6 W! @' o1 f3 k5 P5 Slong_query_time = 2
: [9 b6 ^: z8 \* K# y; b/ M' L6 P以上幾行的意思分別是:. z& {6 ?. O. s' I, v$ w/ S g
# Z- y5 @% q- U. S- n5 ]8 Wslow_query_log = 1
* ?, j# K. Y/ ~3 k7 t1 d# ` v開啟紀錄執行慢的 SQL 語句:" u2 K, ]" N/ z5 f
# m& j' C" R! |* f- I) Q* m
slow_query_log_file = /var/log/mysql-slow.log
$ x% S: e/ d$ ]設定紀錄檔的位置在 /var/log/mysql-slow.log% C0 K% i: F! T8 E$ L% u) D' V! O
1 @! t+ m6 @+ M" u
long_query_time = 2
: f6 y2 f; J7 ~( R( e2 {1 R設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。# `- v# X* @4 V1 h! I
; i! ?# T! A: s+ y5 B9 y修改好 my.cnf 後, 重新啟動 MySQL 便完成了。
- r' F; I2 f) A# ^1 u" Q8 W& d& F# J: Z, N
* X2 s, W; h5 m! m% j e/ s |
|