MySQL慢日志查詢分析方法與工具


                     <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-833878f763.css">
                                    <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-833878f763.css">
            <div class="htmledit_views" id="content_views">
                                        <div class="art_desc mt10" style="margin:10px 5px;padding:10px;color:rgb(51,51,51);border-left-width:3px;border-left-style:solid;border-left-color:rgb(59,176,219);font-size:14px;background:rgb(246,251,255);"><div style="font-family:tahoma, arial, 'Microsoft YaHei';margin:0px;padding:0px;"><p style="background-color:rgb(255,255,255);"><span style="font-weight:700;">MySQL中的日志包括</span>:錯誤日志、二進制日志、通用查詢日志、慢查詢日志等等。這里主要介紹下比較常用的兩個功能:通用查詢日志和慢查詢日志。</p><p style="background-color:rgb(255,255,255);"><span style="font-weight:700;">1)通用查詢日志</span>:記錄建立的客戶端連接和執行的語句。</p><p style="background-color:rgb(255,255,255);"><span style="font-weight:700;">2)慢查詢日志</span>:記錄所有執行時間超過long_query_time秒的所有查詢或者不使用索引的查詢</p><p style="background-color:rgb(255,255,255);"><span style="font-family:'Courier New';font-size:18px;color:rgb(0,0,102);background-color:rgb(255,255,255);">MySQL日志文件系統的組成</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;a、</span><a href="http://blog.csdn.net/leshami/article/details/39759849" rel="nofollow" style="font-family:'Courier New';background-color:rgb(255,255,255);">錯誤日志</a><span style="font-family:'Courier New';background-color:rgb(255,255,255);">:記錄啟動、運行或停止mysqld時出現的問題。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;<strong>&nbsp;b</strong>、</span><a href="http://blog.csdn.net/leshami/article/details/39779225" rel="nofollow" style="font-family:'Courier New';background-color:rgb(255,255,255);">通用日志</a><span style="font-family:'Courier New';background-color:rgb(255,255,255);">:記錄建立的客戶端連接和執行的語句。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;c、更新日志:記錄更改數據的語句。該日志在MySQL 5.1中已不再使用。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;<strong>d</strong>、</span><a href="http://blog.csdn.net/leshami/article/details/39801867" rel="nofollow" style="font-family:'Courier New';background-color:rgb(255,255,255);">二進制日志</a><span style="font-family:'Courier New';background-color:rgb(255,255,255);">:記錄所有更改數據的語句。還用於復制。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;<strong>e</strong>、</span><a href="http://write.blog.csdn.net/postedit/39829605" rel="nofollow" style="font-family:'Courier New';background-color:rgb(255,255,255);">慢查詢日志</a><span style="font-family:'Courier New';background-color:rgb(255,255,255);">:記錄所有執行時間超過long_query_time秒的所有查詢或不使用索引的查詢。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;f、Innodb日志:innodb redo log</span><br></p><p style="background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;缺省情況下,所有日志創建於mysqld數據目錄中。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;可以通過刷新日志,來強制mysqld來關閉和重新打開日志文件(或者在某些情況下切換到一個新的日志)。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;當你執行一個FLUSH LOGS語句或執行mysqladmin flush-logs或mysqladmin refresh時,則日志被老化。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;對於存在MySQL復制的情形下,從復制服務器將維護更多日志文件,被稱為接替日志。</span><br></span></p></div><div style="margin:0px;padding:0px;"><span style="font-family:'Microsoft YaHei';"><span style="background-color:rgb(255,255,255);">同大多數關系型數據庫一樣,日志文件是MySQL數據庫的重要組成部分。MySQL有幾種不同的日志文件,通常包括錯誤日志文件,二進制日志,通用日志,慢查詢日志,等等。這些日志可以幫助我們定位mysqld內部發生的事件,數據庫性能故障,記錄數據的變更歷史,用戶恢復數據庫等等。</span>今天我們要講的是如何分析和查詢mysql慢日志(主要影響程序調用和前端數據呈現)。</span></div><div style="margin:0px;padding:0px;"><br></div><div style="font-family:tahoma, arial, 'Microsoft YaHei';margin:0px;padding:0px;">mysql slow log 是用來記錄執行時間較長(超過long_query_time秒)的sql的一種日志工具</div></div><div class="lbd clearfix" style="margin:0px auto;padding:0px;width:700px;text-align:center;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';font-size:14px;line-height:21px;"><span class="jbTestPos"></span></div><div style="margin:0px auto;padding:0px;width:700px;text-align:left;line-height:25.2px;clear:both;"><h3 style="font-family:tahoma, arial, 'Microsoft YaHei';font-size:12pt;color:rgb(34,34,34);margin-top:0px;margin-bottom:0px;padding:0px;">啟用 slow log<br></h3><div style="font-family:tahoma, arial, 'Microsoft YaHei';font-size:14px;color:rgb(34,34,34);margin:0px;padding:0px;line-height:25.2px;">有兩種啟用方式:</div><span style="color:#222222;font-family:tahoma, arial, 'Microsoft YaHei';font-size:14px;">1, 在my.cnf 里 通過 log-slow-queries[=file_name]</span><div style="font-family:tahoma, arial, 'Microsoft YaHei';font-size:14px;color:rgb(34,34,34);margin:0px;padding:0px;line-height:25.2px;"></div><div style="font-family:tahoma, arial, 'Microsoft YaHei';font-size:14px;color:rgb(34,34,34);margin:0px;padding:0px;line-height:25.2px;">2, 在mysqld進程啟動時,指定--log-slow-queries[=file_name]選項</div><h3 style="font-family:tahoma, arial, 'Microsoft YaHei';font-size:12pt;color:rgb(34,34,34);margin-top:0px;margin-bottom:0px;padding:0px;">比較的五款常用工具<br></h3><p style="font-family:tahoma, arial, 'Microsoft YaHei';font-size:14px;"><span style="color:#ff0000;">mysqldumpslow</span><span style="color:#222222;">, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter</span></p><p><span style="color:#222222;"><strong><span style="font-family:'Microsoft YaHei';font-size:16px;">開源的MySQL慢日志查詢監控工具</span></strong></span></p><p><span style="font-family:'Microsoft YaHei';font-size:14px;"><span style="color:rgb(34,34,34);background-color:rgb(255,255,255);">pmm server、Navicat、mysqltop(天兔</span><span style="line-height:42px;text-align:center;background-color:rgb(255,255,255);"><span style="color:#000000;">Lepus</span></span><span style="color:rgb(34,34,34);background-color:rgb(255,255,255);">)、</span><span style="color:rgb(204,0,0);line-height:20.02px;background-color:rgb(255,255,255);">Box</span><span style="color:rgb(51,51,51);line-height:20.02px;background-color:rgb(255,255,255);">&nbsp;</span></span><span style="color:rgb(204,0,0);line-height:20.02px;background-color:rgb(255,255,255);"><span style="font-family:'Microsoft YaHei';font-size:14px;">Anemometer、explain、</span></span><span style="color:rgb(51,51,51);line-height:37.7143px;font-family:'Microsoft YaHei';font-size:14px;background-color:rgb(255,255,255);"><strong>pt-query-digest</strong></span></p><p style="font-family:tahoma, arial, 'Microsoft YaHei';font-size:14px;color:rgb(34,34,34);"><span style="font-family:'Courier New';font-size:18px;color:rgb(0,0,102);background-color:rgb(255,255,255);">慢查詢日志<br></span><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;慢查詢日志是將mysql服務器中影響數據庫性能的相關SQL語句記錄到日志文件,通過對這些特殊的SQL語句分析,改進以達到提高數據庫性能的目的。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;通過使用--slow_query_log[={0|1}]選項來啟用慢查詢日志。所有執行時間超過long_query_time秒的SQL語句都會被記錄到慢查詢日志。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;缺省情況下hostname-slow.log為慢查詢日志文件安名,存放到數據目錄,同時缺省情況下未開啟慢查詢日志。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;缺省情況下數據庫相關管理型SQL(比如OPTIMIZE TABLE、ANALYZE TABLE和ALTER TABLE)不會被記錄到日志。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;對於管理型SQL可以通過--log-slow-admin-statements開啟記錄管理型慢SQL。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;mysqld在語句執行完並且所有鎖釋放后記入慢查詢日志。記錄順序可以與執行順序不相同。獲得初使表鎖定的時間不算作執行時間。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;可以使用mysqldumpslow命令獲得日志中顯示的查詢摘要來處理慢查詢日志。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;用查詢緩存處理的查詢不加到慢查詢日志中,表有零行或一行而不能從索引中受益的查詢也不寫入慢查詢日志。</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;&nbsp;&nbsp;MySQL服務器按以下順序記錄SQL是否寫入到慢查詢日志</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp; a. The query must either not be an administrative statement, or --log-slow-adminstatements must have been specified.</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;b. The query must have taken at least long_query_time seconds, or log_queries_not_using_indexes must be enabled and&nbsp;the query used no indexes for row lookups.</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp; &nbsp; c. The query must have examined at least min_examined_row_limit rows.</span><br style="font-family:'Courier New';background-color:rgb(255,255,255);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);">&nbsp;d. The query must not be suppressed according to the log_throttle_queries_not_using_indexes setting.</span></p><p style="font-family:tahoma, arial, 'Microsoft YaHei';font-size:14px;color:rgb(34,34,34);"><span style="font-family:'Courier New';background-color:rgb(255,255,255);"></span></p><p style="border-width:0px;margin-bottom:8px;list-style:none;text-indent:2em;color:rgb(51,51,51);font-family:Simsun;font-size:14px;line-height:28px;background-color:rgb(249,249,249);"><a href="https://www.2cto.com/database/MySQL/" rel="nofollow" class="keylink" style="color:rgb(31,58,135);">mysql</a>dumpslow是mysql自帶的用來分析慢查詢的工具,當然不止這一種工具,還有percona-toolkit是percona公司出的一組命令行工具的集合,用來執行各種通過手工執行非常復雜和麻煩的mysql相關任務,包含以下內容:</p><p style="border-width:0px;margin-bottom:8px;list-style:none;text-indent:2em;color:rgb(51,51,51);font-family:Simsun;font-size:14px;line-height:28px;background-color:rgb(249,249,249);">檢查master和slave數據一致性/記錄有效的歸檔/服務器信息匯總/分析和統計日志,為了省事這塊使用mysqldumpslow命令做分析。</p><p style="border-width:0px;margin-bottom:8px;list-style:none;text-indent:2em;color:rgb(51,51,51);font-family:Simsun;font-size:14px;line-height:28px;background-color:rgb(249,249,249);">需要開啟mysql的慢查詢日志,否則無法進行統計分析,開啟mysql慢查詢日志需要在mysql的配置文件中進行如下配置:</p><div style="border-width:0px;padding:0px;margin:0px;list-style:none;color:rgb(51,51,51);font-family:Simsun;font-size:14px;line-height:28px;background-color:rgb(249,249,249);"><div class="syntaxhighlighter bash" style="border-width:0px;padding:0px;margin:1em 0px;list-style:none;width:613px;font-size:1em;background-color:#FFFFFF;"><table border="0" cellpadding="0" cellspacing="0" style="list-style:none;width:613px;border:0px;padding:0px;margin:0px;float:none;height:auto;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;min-height:auto;background:none;"><tbody style="float:none;height:auto;line-height:1.1em;margin:0px;padding:0px;vertical-align:baseline;width:auto;font-size:1em;min-height:auto;background:none;"><tr style="list-style:none;border-top-width:0px;padding:0px;margin:0px;float:none;height:auto;line-height:1.1em;vertical-align:baseline;width:auto;font-size:1em;min-height:auto;background:none;"><td class="gutter" style="list-style:none;border:0px;padding:0px;margin:0px;float:none;height:auto;line-height:1.1em;vertical-align:baseline;width:auto;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;min-height:auto;color:rgb(175,175,175);background:none;"><div class="line number1 index0 alt2" style="list-style:none;border-width:0px 3px 0px 0px;padding:0px .5em 0px 1em;margin:0px;border-right-style:solid;border-right-color:rgb(108,226,108);float:none;height:auto;line-height:1.1em;text-align:right;vertical-align:baseline;width:auto;font-size:1em;min-height:auto;white-space:pre;background-image:none;">1</div><div class="line number2 index1 alt1" style="list-style:none;border-width:0px 3px 0px 0px;padding:0px .5em 0px 1em;margin:0px;border-right-style:solid;border-right-color:rgb(108,226,108);float:none;height:auto;line-height:1.1em;text-align:right;vertical-align:baseline;width:auto;font-size:1em;min-height:auto;white-space:pre;background-image:none;">2</div><div class="line number3 index2 alt2" style="list-style:none;border-width:0px 3px 0px 0px;padding:0px .5em 0px 1em;margin:0px;border-right-style:solid;border-right-color:rgb(108,226,108);float:none;height:auto;line-height:1.1em;text-align:right;vertical-align:baseline;width:auto;font-size:1em;min-height:auto;white-space:pre;background-image:none;">3</div></td><td class="code" style="list-style:none;width:581px;border:0px;padding:0px;margin:0px;float:none;height:auto;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;min-height:auto;background:none;"><div class="container" style="list-style:none;border:0px;padding:0px;margin:0px;float:none;height:auto;line-height:1.1em;vertical-align:baseline;width:auto;font-size:1em;min-height:auto;background:none;"><div class="line number1 index0 alt2" style="list-style:none;border:0px;padding:0px 1em;margin:0px;float:none;height:auto;line-height:1.1em;vertical-align:baseline;width:auto;font-size:1em;min-height:auto;white-space:pre;background-image:none;"><code class="bash plain" style="border:0px;float:none;height:auto;line-height:1.1em;margin:0px;padding:0px;vertical-align:baseline;width:auto;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;min-height:auto;color:#000000;background:none;">slow_query_log=1</code><code class="bash comments" style="border:0px;float:none;height:auto;line-height:1.1em;margin:0px;padding:0px;vertical-align:baseline;width:auto;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;min-height:auto;color:rgb(0,130,0);background:none;">#定義超過1秒的查詢計數到變量Slow_queries</code></div><div class="line number2 index1 alt1" style="list-style:none;border:0px;padding:0px 1em;margin:0px;float:none;height:auto;line-height:1.1em;vertical-align:baseline;width:auto;font-size:1em;min-height:auto;white-space:pre;background-image:none;"><code class="bash plain" style="border:0px;float:none;height:auto;line-height:1.1em;margin:0px;padding:0px;vertical-align:baseline;width:auto;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;min-height:auto;color:#000000;background:none;">slow-query-log-</code><code class="bash functions" style="border:0px;float:none;height:auto;line-height:1.1em;margin:0px;padding:0px;vertical-align:baseline;width:auto;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;min-height:auto;color:rgb(255,20,147);background:none;">file</code><code class="bash plain" style="border:0px;float:none;height:auto;line-height:1.1em;margin:0px;padding:0px;vertical-align:baseline;width:auto;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;min-height:auto;color:#000000;background:none;">=mysql-slow.log</code></div><div class="line number3 index2 alt2" style="list-style:none;border:0px;padding:0px 1em;margin:0px;float:none;height:auto;line-height:1.1em;vertical-align:baseline;width:auto;font-size:1em;min-height:auto;white-space:pre;background-image:none;"><code class="bash plain" style="border:0px;float:none;height:auto;line-height:1.1em;margin:0px;padding:0px;vertical-align:baseline;width:auto;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;min-height:auto;color:#000000;background:none;">long_query_time=1</code></div></div></td></tr></tbody></table></div></div><br><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);"><strong>1.1 簡介</strong></p><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);">開啟慢查詢日志,可以讓MySQL記錄下查詢超過指定時間的語句,通過定位分析性能的瓶頸,才能更好的優化數據庫系統的性能。</p><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);"><strong>1.2 登錄數據庫查看</strong></p><div class="jb51code" style="margin:0px;padding:0px;line-height:25.2px;font-size:14px;width:660px;clear:both;text-align:left;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';background-color:rgb(255,255,255);"><div><div id="highlighter_606116" class="syntaxhighlighter  bash"><div class="toolbar"><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="bash plain">[root@localhost lib]</code><code class="bash comments"># mysql –uroot</code></div></div></td></tr></tbody></table></div></div></div><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);">因為沒有設置設置密碼,有密碼的在 mysql –uroot –p 接密碼</p><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);"><strong>1.2.1 進入MySql 查詢是否開了慢查詢</strong></p><div class="jb51code" style="margin:0px;padding:0px;line-height:25.2px;font-size:14px;width:660px;clear:both;text-align:left;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';background-color:rgb(255,255,255);"><pre><code class="language-sql hljs"><ol class="hljs-ln" style="width:647px"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">mysql&gt; <span class="hljs-keyword"><span class="hljs-keyword">show</span></span> <span class="hljs-keyword"><span class="hljs-keyword">variables</span></span> <span class="hljs-keyword"><span class="hljs-keyword">like</span></span> <span class="hljs-string"><span class="hljs-string">'slow_query%'</span></span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">+<span class="hljs-comment"><span class="hljs-comment">---------------------+--------------------------------------------+</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">| Variable_name    | Value                   |</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">+</span><span class="hljs-comment"><span class="hljs-comment">---------------------+--------------------------------------------+</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">| slow_query_log   | OFF                    |</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">| slow_query_log_file | /application/mysql/data/localhost-slow.log |</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">+</span><span class="hljs-comment"><span class="hljs-comment">---------------------+--------------------------------------------+</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">2 rows in </span><span class="hljs-keyword"><span class="hljs-comment">set</span></span><span class="hljs-comment"> (</span><span class="hljs-number"><span class="hljs-comment">0.00</span></span><span class="hljs-comment"> sec)</span></div></div></li></ol></code><div class="hljs-button signin" data-title="登錄后復制" onclick="hljs.signin(event)"></div></pre></div><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);">參數說明:</p><ol style="margin-bottom:0px;margin-left:25px;padding-top:.3em;padding-bottom:.3em;line-height:25px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';font-size:14px;text-align:left;background-color:rgb(255,255,255);"><li style="margin:0px;padding:0px;list-style:disc;">slow_query_log 慢查詢開啟狀態&nbsp; OFF 未開啟 ON 為開啟</li><li style="margin:0px;padding:0px;list-style:disc;">slow_query_log_file 慢查詢日志存放的位置(這個目錄需要MySQL的運行帳號的可寫權限,一般設置為MySQL的數據存放目錄)</li></ol><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);"><strong>1.2.2 查看慢查詢超時時間</strong></p><div class="jb51code" style="margin:0px;padding:0px;line-height:25.2px;font-size:14px;width:660px;clear:both;text-align:left;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';background-color:rgb(255,255,255);"><pre><code class="language-sql hljs"><ol class="hljs-ln"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">mysql&gt; <span class="hljs-keyword"><span class="hljs-keyword">show</span></span> <span class="hljs-keyword"><span class="hljs-keyword">variables</span></span> <span class="hljs-keyword"><span class="hljs-keyword">like</span></span> <span class="hljs-string"><span class="hljs-string">'long%'</span></span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">+<span class="hljs-comment"><span class="hljs-comment">-----------------+-----------+</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">| Variable_name  | Value   |</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">+</span><span class="hljs-comment"><span class="hljs-comment">-----------------+-----------+</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">| long_query_time | 10.000000 |</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">+</span><span class="hljs-comment"><span class="hljs-comment">-----------------+-----------+</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">1 row in </span><span class="hljs-keyword"><span class="hljs-comment">set</span></span><span class="hljs-comment"> (</span><span class="hljs-number"><span class="hljs-comment">0.00</span></span><span class="hljs-comment"> sec)</span></div></div></li></ol></code><div class="hljs-button signin" data-title="登錄后復制" onclick="hljs.signin(event)"></div></pre></div><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);">long_query_time 查詢超過多少秒才記錄&nbsp;&nbsp; 默認10秒 修改為1秒</p><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);"><strong>1.3 修改方法1:(不推薦)</strong></p><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);">方法一:優點臨時開啟慢查詢,不需要重啟數據庫&nbsp; 缺點:MySql 重啟慢查詢失效</p><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);">推薦:根據業務需求,建議使用第二種,臨時可以用第一種</p><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);">默認情況下slow_query_log的值為OFF,表示慢查詢日志是禁用的,可以通過設置slow_query_log的值來開啟,如下所示::是否開啟慢查詢日志,1表示開啟,0表示關閉。</p><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);"><strong>1.3.1 查看是否開啟慢查詢</strong></p><div class="jb51code" style="margin:0px;padding:0px;line-height:25.2px;font-size:14px;width:660px;clear:both;text-align:left;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';background-color:rgb(255,255,255);"><pre><code class="language-sql hljs"><ol class="hljs-ln" style="width:647px"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">mysql&gt; <span class="hljs-keyword"><span class="hljs-keyword">show</span></span> <span class="hljs-keyword"><span class="hljs-keyword">variables</span></span> <span class="hljs-keyword"><span class="hljs-keyword">like</span></span> <span class="hljs-string"><span class="hljs-string">'%slow_query_log%'</span></span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">+<span class="hljs-comment"><span class="hljs-comment">---------------------+--------------------------------------------+</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">| Variable_name    | Value                   |</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">+</span><span class="hljs-comment"><span class="hljs-comment">---------------------+--------------------------------------------+</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">| slow_query_log   | OFF                    |</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">| slow_query_log_file | /application/mysql/data/localhost-slow.log |</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">+</span><span class="hljs-comment"><span class="hljs-comment">---------------------+--------------------------------------------+</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">2 rows in </span><span class="hljs-keyword"><span class="hljs-comment">set</span></span><span class="hljs-comment"> (</span><span class="hljs-number"><span class="hljs-comment">0.01</span></span><span class="hljs-comment"> sec)</span></div></div></li></ol></code><div class="hljs-button signin" data-title="登錄后復制" onclick="hljs.signin(event)"></div></pre></div><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);">輸入 語句修改(重啟后失效,建議在/etc/my.cnf中修改永久生效)</p><div class="jb51code" style="margin:0px;padding:0px;line-height:25.2px;font-size:14px;width:660px;clear:both;text-align:left;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';background-color:rgb(255,255,255);"><pre><code class="language-sql hljs"><ol class="hljs-ln"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">mysql&gt; <span class="hljs-keyword"><span class="hljs-keyword">set</span></span> <span class="hljs-keyword"><span class="hljs-keyword">global</span></span> slow_query_log=<span class="hljs-number"><span class="hljs-number">1</span></span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">Query OK, 0 rows affected (0.11 sec)</div></div></li></ol></code><div class="hljs-button signin" data-title="登錄后復制" onclick="hljs.signin(event)"></div></pre></div><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);"><strong>1.3.2 再次查看</strong></p><div class="jb51code" style="margin:0px;padding:0px;line-height:25.2px;font-size:14px;width:660px;clear:both;text-align:left;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';background-color:rgb(255,255,255);"><pre><code class="language-sql hljs"><ol class="hljs-ln" style="width:647px"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">mysql&gt; <span class="hljs-keyword"><span class="hljs-keyword">show</span></span> <span class="hljs-keyword"><span class="hljs-keyword">variables</span></span> <span class="hljs-keyword"><span class="hljs-keyword">like</span></span> <span class="hljs-string"><span class="hljs-string">'%slow_query_log%'</span></span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">+<span class="hljs-comment"><span class="hljs-comment">---------------------+--------------------------------------------+</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">| Variable_name    | Value                   |</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">+</span><span class="hljs-comment"><span class="hljs-comment">---------------------+--------------------------------------------+</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">| slow_query_log   | ON                     |</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">| slow_query_log_file | /application/mysql/data/localhost-slow.log |</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">+</span><span class="hljs-comment"><span class="hljs-comment">---------------------+--------------------------------------------+</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">2 rows in </span><span class="hljs-keyword"><span class="hljs-comment">set</span></span><span class="hljs-comment"> (</span><span class="hljs-number"><span class="hljs-comment">0.00</span></span><span class="hljs-comment"> sec)</span></div></div></li></ol></code><div class="hljs-button signin" data-title="登錄后復制" onclick="hljs.signin(event)"></div></pre></div><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);"><strong>1.4 修改方法2:(推薦)</strong></p><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);">修改 MySql 慢查詢,好多人不知道my.cnf 路徑,可以用 find 查找</p><p style="margin-bottom:0px;padding-top:5px;padding-bottom:5px;font-size:14px;line-height:30px;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';text-align:left;background-color:rgb(255,255,255);">備注:我的MySQL 是編譯的 路徑為 /etc/my.cnf (一般都是這里)</p><div class="jb51code" style="margin:0px;padding:0px;line-height:25.2px;font-size:14px;width:660px;clear:both;text-align:left;color:rgb(34,34,34);font-family:tahoma, arial, 'Microsoft YaHei';background-color:rgb(255,255,255);"><pre><code class="language-perl hljs">[root@localhost <span class="hljs-keyword"><span class="hljs-keyword">log</span></span>]<span class="hljs-comment"><span class="hljs-comment"># find / -type f -name "my.cnf"</span></span>

/application/mysql-5.5.51/mysql-test/suite/rpl/my.cnf

/application/mysql-5.5.51/mysql-test/suite/federated/my.cnf

/application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/rpl/my.cnf

/application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/federated/my.cnf

/etc/my.cnf ###(一般都是這里)

1.4.1.1 修改

?
1
[root@localhost log] # vim /etc/my.cnf

找到 [mysqld] 下面添加

slow_query_log =1

slow_query_log_file=/application/mysql/data/localhost-slow.log

long_query_time = 1

參數說明:

  1. slow_query_log 慢查詢開啟狀態  1 為開啟
  2. slow_query_log_file 慢查詢日志存放的位置
  3. long_query_time 查詢超過多少秒才記錄   默認10秒 修改為1秒

修改完重啟MySQL

1.5 查看、測試

1.5.1.1 插入一條測試慢查詢


   
   
   
           
  1. mysql> select sleep( 2);
  2. + ----------+
  3. | sleep(2) |
  4. + ----------+
  5. | 0 |
  6. + ----------+
  7. 1 row in set ( 2.00 sec)

1.5.1.2 查看慢查詢日志

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[root@localhost data] # cat /application/mysql/data/localhost-slow.log
 
/application/mysql/bin/mysqld , Version: 5.5.51-log (MySQL Community Server (GPL)). started with:
 
Tcp port: 3306 Unix socket: /tmp/mysql .sock
 
Time         Id Command  Argument
 
/application/mysql/bin/mysqld , Version: 5.5.51-log (MySQL Community Server (GPL)). started with:
 
Tcp port: 3306 Unix socket: /tmp/mysql .sock
 
Time         Id Command  Argument
 
/application/mysql/bin/mysqld , Version: 5.5.51-log (MySQL Community Server (GPL)). started with:
 
Tcp port: 3306 Unix socket: /tmp/mysql .sock
 
Time         Id Command  Argument
 
# Time: 170605 6:37:00
 
# User@Host: root[root] @ localhost []
 
# Query_time: 2.000835 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
 
SET timestamp=1496615820;
 
select sleep (2);

1.5.1.3 通過MySQL命令查看有多少慢查詢


   
   
   
           
  1. mysql> show global status like '%Slow_queries%';
  2. + ---------------+-------+
  3. | Variable_name | Value |
  4. + ---------------+-------+
  5. | Slow_queries | 1 |
  6. + ---------------+-------+
  7. 1 row in set ( 0.00 sec)

1.6 日志分析工具mysqldumpslow

在生產環境中,如果要手工分析日志,查找、分析SQL,顯然是個體力活,MySQL提供了日志分析工具mysqldumpslow

MySQL 慢查詢日志分析

mysql> show variables like '%slow%';
+---------------------+-------------------------+
| Variable_name       | Value                    |
+---------------------+-------------------------+
| log_slow_queries    | ON                        |
| slow_launch_time    | 2                          |
| slow_query_log      | ON                         |
| slow_query_log_file | D:/log/slow.txt       |
+---------------------+-------------------------+

其中,各參數說明如下:

slow_launch_time: 慢查詢超過的執行時間值

 slow_query_log: 是否打開慢查詢日志功能

show_query_log_file:慢查詢日志目錄  

開啟慢查詢日志功能:

mysql配置文件(win mysql.ini linux mysql.conf)下,

[mysqld]

log-slow-queries ="D:/xampp/mysql/long.txt"
long_query_time = 1

log-slow-queries=/var/lib/mysql/slowquery.log (指定日志文件存放位置,可以為空,系統會給一個缺省的文件host_name-slow.log)
long_query_time=2 (記錄超過的時間,默認為10s)
log-queries-not-using-indexes (log下來沒有使用索引的query,可以根據情況決定是否開啟)
log-long-format (如果設置了,所有沒有使用索引的查詢也將被記錄)

mysqldumpslow, mysql官方提供的慢查詢日志分析工具. 輸出圖表如下:
主要功能是, 統計不同慢sql的
出現次數(Count), 
執行最長時間(Time), 
累計總耗費時間(Time), 
等待鎖的時間(Lock), 
發送給客戶端的行總數(Rows), 
掃描的行總數(Rows), 
用戶以及sql語句本身(抽象了一下格式, 比如 limit 1, 20 用 limit N,N 表示).

mysqlsla, hackmysql.com推出的一款日志分析工具(該網站還維護了 mysqlreport, mysqlidxchk 等比較實用的mysql工具)
整體來說, 功能非常強大. 數據報表,非常有利於分析慢查詢的原因, 包括執行頻率, 數據量, 查詢消耗等.

格式說明如下:
總查詢次數 (queries total), 去重后的sql數量 (unique)
輸出報表的內容排序(sorted by)
最重大的慢sql統計信息, 包括 平均執行時間, 等待鎖時間, 結果行的總數, 掃描的行總數.

Count, sql的執行次數及占總的slow log數量的百分比.
Time, 執行時間, 包括總時間, 平均時間, 最小, 最大時間, 時間占到總慢sql時間的百分比.
95% of Time, 去除最快和最慢的sql, 覆蓋率占95%的sql的執行時間.
Lock Time, 等待鎖的時間.
95% of Lock , 95%的慢sql等待鎖時間.
Rows sent, 結果行統計數量, 包括平均, 最小, 最大數量.
Rows examined, 掃描的行數量.
Database, 屬於哪個數據庫
Users, 哪個用戶,IP, 占到所有用戶執行的sql百分比

Query abstract, 抽象后的sql語句
Query sample, sql語句

除了以上的輸出, 官方還提供了很多定制化參數, 是一款不可多得的好工具.

mysql-explain-slow-log, 德國人寫的一個perl腳本.
http://www.willamowius.de/mysql-tools.html


功能上有點瑕疵, 不僅把所有的 slow log 打印到屏幕上, 而且統計也只有數量而已. 不推薦使用.
mysql-log-filter, google code上找到的一個分析工具.提供了 python 和 php 兩種可執行的腳本.
http://code.google.com/p/mysql-log-filter/
功能上比官方的mysqldumpslow, 多了查詢時間的統計信息(平均,最大, 累計), 其他功能都與 mysqldumpslow類似.
特色功能除了統計信息外, 還針對輸出內容做了排版和格式化, 保證整體輸出的簡潔. 喜歡簡潔報表的朋友, 推薦使用一下.
myprofi, 純php寫的一個開源分析工具.項目在 sourceforge 上.
http://myprofi.sourceforge.net/

 
功能上, 列出了總的慢查詢次數和類型, 去重后的sql語句, 執行次數及其占總的slow log數量的百分比.
從整體輸出樣式來看, 比mysql-log-filter還要簡潔. 省去了很多不必要的內容. 對於只想看sql語句及執行次數的用戶來說, 比較推薦.

總結

工具/功能 一般統計信息 高級統計信息 腳本 優勢
mysqldumpslow 支持 不支持 perl mysql官方自帶
mysqlsla 支持 支持 perl 功能強大,數據報表齊全,定制化能力強.
mysql-explain-slow-log 支持 不支持 perl
mysql-log-filter 支持 部分支持 python or php 不失功能的前提下,保持輸出簡潔
myprofi 支持 不支持 php 非常精簡
【參考資料】
1、MySQL 慢查詢日志分析及可視化結果 – 運維生存時間 http://www.ttlsa.com/mysql/mysql-slow-query-log-analysis-and-visualization-of-results/
2、Mysql 慢日志分析系統搭建 —— Box Anemometer_SleePerSir_新浪博客 http://blog.sina.com.cn/s/blog_c2839d2a0102wkuv.html
3、mysql性能監控軟件 慢日志分析利器 - pmm server https://blog.csdn.net/john1337/article/details/70855293

4、MySQL 慢查詢日志(Slow Query Log) - CSDN博客 https://blog.csdn.net/leshami/article/details/39829605

5、關於MySQL 通用查詢日志和慢查詢日志分析 - CSDN博客 https://blog.csdn.net/timchen525/article/details/75268151

6、mysql 慢日志分析工具pt-query-digest - CSDN博客 https://blog.csdn.net/stevendbaguo/article/details/47612359

        <div class="person-messagebox">
            
            
                            
                        </div>

原文地址:https://blog.csdn.net/enweitech/article/details/80239189


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM