tid=96870&有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。
, x* z4 {4 s5 W e: K: Q. [& D& J. B, k n, F
要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:
9 E" U/ d6 l; Y/ G. c3 {
7 Z6 D4 [6 O! W% K! i1 n3 g& E/etc/my.cnf' l+ U3 r& z& y
/etc/mysql/my.cnf
9 O3 }5 n/ F9 p# r
5 O2 w" B# A- z3 n! J3 T先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:! o2 P3 h- ~ ]
slow_query_log = 1' V+ c9 L9 F! K; ~9 x3 x
slow_query_log_file = /var/log/mysql-slow.log
( N5 I, k6 T% ~* Rlong_query_time = 2
+ V4 ]9 {0 W6 t1 ^7 t以上幾行的意思分別是:8 u! n* C# o% o% u" x4 d. z1 P
7 ~) Y/ R6 p# S+ P
slow_query_log = 1
1 t, [2 g9 h6 m0 Z5 B$ W8 N! L開啟紀錄執行慢的 SQL 語句:
% f+ e- }0 v$ b7 h7 `+ R, x
' x! I- v$ M B6 yslow_query_log_file = /var/log/mysql-slow.log
. b5 g' `8 h9 E2 ^/ R, v, `設定紀錄檔的位置在 /var/log/mysql-slow.log
4 F2 A2 r5 o' k1 F
+ T6 R& [' ^5 j3 _long_query_time = 27 r0 u; x; u2 [) @3 X
設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。$ m ?9 `% l# V4 s
5 S: S( n N3 Y. @
修改好 my.cnf 後, 重新啟動 MySQL 便完成了。
1 x+ w5 P/ I3 p$ v& t( U% }
8 k3 C) u( ]) P. m8 C& F. _- v
- P# q- F( t) l. s9 Z( l- P4 Y) R |