tid=96870&有時發覺程式執行很慢, 其中一個要檢查的地方是資料庫。MySQL 可以將執行過的 SQL 語句全部紀錄下來, 或者可以只是將執行慢的 SQL 語句紀錄下來, 這樣對於 MySQL 語句的 Debug 就輕鬆很多了。+ j; r- }4 b) o9 T/ j
: g& h1 D) C; }. U+ Z* z要紀錄執行慢的 SQL 語句, 可以透過修改 my.cnf 完成, my.cnf 多數在以下位置:7 d4 i/ @% w+ u6 ]" _7 ? Q& z
* D; P: W: X6 \
/etc/my.cnf% h3 m% u4 c+ w* P
/etc/mysql/my.cnf3 O5 B) ?* R: ]1 K3 H, e; y
% @! {& F7 s% k# L2 j先開啟 my.cnf, 在 [mysqld] 段落加入以下幾行:
' `9 [ ^- {' Y2 o- _5 r1 g( Gslow_query_log = 1
8 i8 F1 `! l& _2 l! x$ T! E: Yslow_query_log_file = /var/log/mysql-slow.log! _8 B4 N9 C& B) w; |9 s
long_query_time = 2
% V( I3 j, J5 W+ ]: E* n, k1 x以上幾行的意思分別是:
* ` G8 |, v8 E2 g5 @5 Y- |8 }+ K
9 d9 l* z* l( s; ?- {slow_query_log = 1
. W2 Y$ }# [, z6 P6 K- Y2 B" N9 j7 H' }開啟紀錄執行慢的 SQL 語句:
+ X9 P! s/ } W# n* o' K. X# \3 k) ?. i- Y% {# `
slow_query_log_file = /var/log/mysql-slow.log( Y4 ~* g* e! @% p' G; E$ B
設定紀錄檔的位置在 /var/log/mysql-slow.log0 t/ |2 L& a8 F2 {6 a5 `: P
T# c4 B) t) x- K# V1 s
long_query_time = 2
% Z" q- M s9 ^3 @+ ^1 ]設定當 SQL 語句執行時間超過 2 秒時, 便會將 SQL 語句儲存。8 J8 {9 h' G0 w) o
' X( h3 U3 _/ n0 i5 O P5 u修改好 my.cnf 後, 重新啟動 MySQL 便完成了。1 B/ }6 L! I" s0 A1 _
( E) D' T! {, P. r7 h# x! Y
* U4 R7 ^0 u5 o8 J, i
|