1. 程式人生 > >關於long_query_time的設置,可不可以說是mysql的一個小小bug呢

關於long_query_time的設置,可不可以說是mysql的一個小小bug呢

重啟 .net target mys 配置文件 查詢日誌 net 不可 variable

我們知道對對於MySQL的日誌功能,我們可以完全自己控制到底寫還是不寫。一般來說,binlog我們一般會開啟,而對於慢查詢我們一般會在開發的時候調試和觀察SQL語句的執行速度。但今天發現一個問題。在使用show variables like ‘log%‘;查看slow日誌是否開啟時,發現為OFF,使用set global log_low_queries=on;成功了。而使用show variales like ‘long%‘時發現是10,於是想把它修改成1,照葫蘆畫瓢使用set global long_query_time=1,再一次查詢發現還是10。乖乖砸了,使用select sleep(10),記錄了日誌,而是用select sleep(1)確實沒有被記錄。而且設置的返回記錄是:

mysql> set global long_query_time=1;

Query OK, 0 rows affected (0.00 sec)

難道真的沒有改變嗎,忽然想到是不是需要重啟服務器呢,想應該不是吧,我又不是修改配置文件。最後想重新開一個會話看如何。重新開一個會話查詢show variables like ‘long%‘;果然被修改了。那為什麽在修改它的窗口沒有反映出來呢。不解。

希望遇到這種情況的朋友不要向我一樣在一個會話中不停的試。找原因,直接開過窗口就可以試驗了。

另外,將MySQL慢查詢日誌寫入表的的設置為。set global log_output=‘TABLE‘;

和慢查詢相關的還有一個參數是log_queries_not_using_indexes;用來設置是否記錄沒有使用索引的查詢。開啟該查詢後,如果你的日誌是記錄到表中的,那麽你每次顯示慢日誌語句的時候,從該表中的查詢記錄也會被添加進行。

如果日誌是寫在文件中。用mysqldumpslow工具可以對慢查詢日誌文件進行瀏覽。該工具我也沒使用過,用了後在介紹了。

轉自:http://blog.csdn.net/fengbangyue/article/details/6359509

關於long_query_time的設置,可不可以說是mysql的一個小小bug呢