Mysql
如何排除從 mysqldumpslow 命令返回的查詢
我想忽略 mysql-slow 日誌中源自
mysqldumpslow
使用SQL_NO_CACHE
作為觸發詞執行命令的查詢。我使用正則表達式的經驗充其量是有限的,我無法在文件中找到任何範例。
我嘗試了以下幾種變體:
mysqlslowdump -g '!(SQL_NO_CACHE)' /path/to/my/log mysqlslowdump -g '^!(SQL_NO_CACHE)$' /path/to/my/log
…但總是回來:
Died at /usr/bin/mysqldumpslow line 162
我的正則表達式有什麼問題?
好的 - 你應該在這裡查看頁面,
(Due to a limitation in the parser, a space character must precede and follow the SQL_NO_CACHE keyword; a nonspace such as a newline causes the server to check the query cache to see whether the result is already cached.)
現在,您使用的語法可能與上面關於“換行符”的部分不對應 - 我不確定。也許您可以嘗試直接從命令行執行查詢?
$$ EDIT $$回應OP的評論。
mysqlslowdump -g '!(SQL_NO_CACHE)' /path/to/my/log mysqlslowdump -g '^!(SQL_NO_CACHE)$' /path/to/my/log
我從來沒有遇到過這個問題,但是用“SQL_NO_CACHE”周圍的空格重寫你的程式碼可能會產生一些影響嗎?
我不複製
死於 /usr/bin/mysqldumpslow 第 162 行
但要回答
我想忽略 mysql-slow 日誌中源自使用 SQL_NO_CACHE 作為觸發詞執行命令 mysqldumpslow 的查詢。
這對我有用:
mysqldumpslow -g '^(?!.*SQL_NO_CACHE)'