{"componentChunkName":"component---src-templates-post-template-jsx","path":"/works/posts/2020-12-22--001.md","result":{"data":{"site":{"siteMetadata":{"title":"Blog by Eunyoung","subtitle":"작업 기록 블로그","copyright":"© All rights reserved.","author":{"name":"EunYoung","twitter":"#"},"disqusShortname":"","url":"https://ssongey.github.io"}},"markdownRemark":{"id":"ed078f19-528b-5728-981d-1a7ef2e781ef","html":"<h3>Slow Query(슬로우쿼리)</h3>\n<ul>\n<li>Slow Query(슬로우쿼리)는 지정된 시간보다 실행하는데 오래걸리는 쿼리에 대한 log</li>\n<li>특정 작업이 오래 걸린다면 로그를 통해 원인을 파악이 가능</li>\n</ul>\n<br>\n<h3>#. 설정 확인</h3>\n<ul>\n<li>slow query log 설정 상태 확인</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\"># slow query 설정 정보\nmysql&gt; show global variables like &#39;slow%&#39;;</code></pre></div>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/c9a4118eaae557a4491e4650e3480b65/e4c9a/001-01.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 591px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 40.416666666666664%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAABYlAAAWJQFJUiTwAAABT0lEQVQoz21S2ZKCMBDkS/ZSCQuIBIRwhUNRd///g3qnp7TKKvehK6mkp6enk2C9zLjezjidPMa5l/2Cvq/RCbx36H2DcWxwrHJMc4dFeNzzLLcJ5mXAIBwTfSH63iCoXQEnaNoS3Hd9JQUHWJuiqi3artI7W+xRlESmQrZIdSU3TUMVo2jg2qN0cDivo4qd10mJJBzyWLvT/T6LkCQhkpQwuqb7SDnGfCpfHVZ1rg7okm6cs+gHpw4OeaKO4mQnxeYVWaSc6D6uCrL4ejvhIln+/F4kowGruKQICZPkGsdbbHfv2IUfL6BTCpo7AteUmJZeR10Wr+6mqVPXzKyRSMaxxShnizyAlwgG4TAmnpXHDOHzyBRspYj5NfeVLzdLExbxnjmxkA34OIyD4BlX8zwyX9bLF2jFkWbYFCLUYpYv4sUZM95s3/4d94GHGPEHNrr9XMWXytgAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"001 01\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/c9a4118eaae557a4491e4650e3480b65/e4c9a/001-01.png\"\n        srcset=\"/devHistoryBlog/static/c9a4118eaae557a4491e4650e3480b65/8ff5a/001-01.png 240w,\n/devHistoryBlog/static/c9a4118eaae557a4491e4650e3480b65/e85cb/001-01.png 480w,\n/devHistoryBlog/static/c9a4118eaae557a4491e4650e3480b65/e4c9a/001-01.png 591w\"\n        sizes=\"(max-width: 591px) 100vw, 591px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<br>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\"># 소요시간 확인\nmysql&gt; show global variables like &#39;%long_query_time%&#39;;</code></pre></div>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/e075030c0255aaa2bda14dffa54a6b21/2c288/001-02.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 684px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 26.666666666666668%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAu0lEQVQY03WQ6Q6CQAyEeRWPKKgcK+zCHlwKvv8bjW0TIxH8Mdl02v3SaTQ+WrCcN+iHgNA2oq535HdoO0u9WmpjFKzTqHRBvkNHPa59qOHpf3I5ImpsKUVgk6RNgSxPCGBRqCvSNJbBc7xfKU4OoqVHwEpAvBW/zmsodZONhjGgqnIZPJ13KyB7v35kakUgI0BNkTj6vUwlyjQPsJRg+ekD+aeIQXwnVmhrPKce82uge3qk2Tfu1oZbegNkC5wGraiZLQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"001 02\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/e075030c0255aaa2bda14dffa54a6b21/2c288/001-02.png\"\n        srcset=\"/devHistoryBlog/static/e075030c0255aaa2bda14dffa54a6b21/8ff5a/001-02.png 240w,\n/devHistoryBlog/static/e075030c0255aaa2bda14dffa54a6b21/e85cb/001-02.png 480w,\n/devHistoryBlog/static/e075030c0255aaa2bda14dffa54a6b21/2c288/001-02.png 684w\"\n        sizes=\"(max-width: 684px) 100vw, 684px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<br>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\"># 로그파일 저장 방법 (FILE / TABLE)\nmysql&gt; show global variables like &#39;%log_output%&#39;;</code></pre></div>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/ab24097d71c08c59a8d7996770dbbcb2/6114d/001-03.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 623px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 30.83333333333333%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAABYlAAAWJQFJUiTwAAAA0UlEQVQY041QWw7CMAzrUXiuHSBgjz422rLBuP+RTBIBEgIkPqw0ruukVsOYMN0GnGJAyj24D10rNVN/nTKsq+RuvCT40JLWCzcMkfgOI2ljCjDlCsr5SpqYvBj1J0fiowh9qLHdFSRcotys3vDkNtu1gHtjFlBNu38YWXS9RU9gjs/WHqFJVOj5B77xWgztgb7gZCM2LfQMVb3D5ZplkDbLnwbfoPhRJjPOJeVAm7WYprPEwINMuXgZ/gNVN3vJinPj6nxNIUfarhGON/7XjHEHdK65zCJc8o8AAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"001 03\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/ab24097d71c08c59a8d7996770dbbcb2/6114d/001-03.png\"\n        srcset=\"/devHistoryBlog/static/ab24097d71c08c59a8d7996770dbbcb2/8ff5a/001-03.png 240w,\n/devHistoryBlog/static/ab24097d71c08c59a8d7996770dbbcb2/e85cb/001-03.png 480w,\n/devHistoryBlog/static/ab24097d71c08c59a8d7996770dbbcb2/6114d/001-03.png 623w\"\n        sizes=\"(max-width: 623px) 100vw, 623px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<br>\n<h3>#. 설정 방법</h3>\n<h4>#1. my.cnf 파일 설정 및 재기동</h4>\n<ul>\n<li>파일 설정</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\"># 3초 이상 소요된 쿼리를 테이블에 기록\n[mysqld]\nslow_query_log=1\nlong_query_time = 3\n\nlog_output = TABLE\nlog_slow_queries       = /var/log/mysql/mysql-slow.log</code></pre></div>\n<ul>\n<li>재기동</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">$ /etc/init.d/mysqld restart</code></pre></div>\n<br>\n<h4>#2. 쿼리문 사용 (편하다…, 재기동시 날라간다…)</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\"># 해당 값(초) 이상의 로그 기록\nmysql&gt; set global long_query_time = 3;\n\n# 슬로우쿼리 활성 여부 (0 = 비활성 / 1 = 활성)\nmysql&gt; set global slow_query_log = 1;\n\n# 로그파일 저장 방법 변경\nmysql&gt; set global log_output = &#39;TABLE&#39;;</code></pre></div>\n<br>\n<h3>#. 로그 확인</h3>\n<h4>#. mysql.slow_log 테이블 확인</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">mysql&gt; select sleep(3);\n\nmysql&gt; select * from mysql.slow_log\\G</code></pre></div>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/4aae148b1988ba271b336ed8e2299443/c7dcc/001-04.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 641px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 65.41666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAABYlAAAWJQFJUiTwAAABoklEQVQ4y42TZ3LCQAyFfZE0bNxxwQ3jXuiTcP/TKHoiZEKAhB8aeWd3Pz/paZWuK2kYamragsoyk5wtIqqbpeQo9qmsFrJeFglHKt/D2NA8mpHrGuR6Js04HEcnBRBA276iqs7lu6qX1DJYoNmc8mVCXV/KuulOGZHyXpz4HAElaUh+YJNiWqqo6Flly4ebJpfDq3UnUdcLUYXv3X5F+8OagsAh3Xgj25lehGVrpOjGRP6w2QzUs8qGYR3n948drTc9HY8HyVkWUsgler5NpjWhqf4q0N+hYCMIHRpXrSjspbRCIF1fM3hPB1aFc9r0hS+dQIY5uRkKmomSAVhzWegVmo1NlHCO3xfvQRU09uwmegWlDjt3XdLkKm4CAUOUVS65baHQO11gw2CaYap3S7wCOq4ugO1uFENgTMxqVe1JlKFvUPswUNWe2XJdxgYzWPMsLvJYhhhgzGbKDkvfHgGi4TPf4t6d5g6vAhAYg70gdHlUrG8j/gsFqgCCyxjazXag8etZAXQu+a9RuVCIi3A6ij1+PoFkKCzYcax/gh6BfgJfwJT1wH5ERgAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"001 04\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/4aae148b1988ba271b336ed8e2299443/c7dcc/001-04.png\"\n        srcset=\"/devHistoryBlog/static/4aae148b1988ba271b336ed8e2299443/8ff5a/001-04.png 240w,\n/devHistoryBlog/static/4aae148b1988ba271b336ed8e2299443/e85cb/001-04.png 480w,\n/devHistoryBlog/static/4aae148b1988ba271b336ed8e2299443/c7dcc/001-04.png 641w\"\n        sizes=\"(max-width: 641px) 100vw, 641px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<br>\n<h4>#. /var/log/mysql/mysql-slow.log 파일 확인</h4>\n<ul>\n<li>아래와 같은 형식으로 로그파일에 기록됨</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\"># Query_time : 쿼리 처리시간  \n# Lock_time : lock이 걸린 횟수  \n# Row_sent : 조회 결과 Row 수  \n# Rows_examined : 조회 대상 ROW 수  \n\n# User@Host: DB_유저[DB_유저] @ server_hostname [서버IP]\n# Query_time: 0.000599  Lock_time: 0.000163 Rows_sent: 3  Rows_examined: 86\nSET timestamp=1489118717;\nselect count(*)</code></pre></div>\n<br>\n2021.02.01. 오늘 slow query 찾아보다가 내용이 부실해서 추가함...","fields":{"tagSlugs":["/tags/slow-query/"],"slug":"/works/posts/2020-12-22--001.md"},"frontmatter":{"title":"[MariaDB] SlowQuery 설정 및 확인","tags":["slow query"],"date":"2020-12-22","description":""}}},"pageContext":{"slug":"/works/posts/2020-12-22--001.md"}},"staticQueryHashes":[]}