MySQL ๋ก๊ทธ ํ์ผ
Real MySQL 8.0 ์คํฐ๋-6

MySQL ์๋ฒ์์ ์๋ฒ์ ์ํ๋ฅผ ์ง๋จํ ์ ์๋ ๋ง์ ๋๊ตฌ๋ค์ด ์ง์๋์ง๋ง ์์ฝ๊ฒ๋ ์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ ๋ง์ ์ง์์ ํ์๋ก ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
ํ์ง๋ง ๋ก๊ทธ ํ์ผ์ ์ด์ฉํ๋ฉด MySQL ์๋ฒ์ ๊น์ ๋ด๋ถ ์ง์์ด ์์ด๋ MySQL์ ์ํ๋ ๋ถํ๋ฅผ ์ผ์ผํค๋ ์์ธ์ ์ฝ๊ฒ ์ฐพ์์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
1. ์๋ฌ ๋ก๊ทธ ํ์ผ
MySQL์ด ์คํ๋๋ ๋์ค์ ๋ฐ์ํ๋ ์๋ฌ๋ ๊ฒฝ๊ณ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ ๋ก๊ทธ ํ์ผ์
๋๋ค. ์๋ฌ ๋ก๊ทธ ํ์ผ์ ์์น๋ MySQL ์ค์ ํ์ผ(my.cnf ๋๋ my.ini)์์ log_error๋ผ๋ ์ด๋ฆ์ ํ๋ผ๋ฏธํฐ๋ก ์ ์๋ ๊ฒฝ๋ก์ ์์ฑ๋ฉ๋๋ค. ๋ณ๋๋ก ์ ์๋์ง ์์ ๊ฒฝ์ฐ์๋ ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ์ .err๋ผ๋ ํ์ฅ์๊ฐ ๋ถ์ ํ์ผ๋ก ์์ฑ๋ฉ๋๋ค. ์๋ฌ ๋ก๊ทธ ํ์ผ์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ฉ์์ง๋ค์ ๊ฐ์ฅ ์์ฃผ ๋ณด๊ฒ ๋ฉ๋๋ค.
MySQL์ด ์์ํ๋ ๊ณผ์ ๊ณผ ๊ด๋ จ๋ ์ ๋ณด์ฑ ๋ฐ ์๋ฌ ๋ฉ์์ง
๋ง์ง๋ง์ผ๋ก ์ข ๋ฃํ ๋ ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋ ๊ฒฝ์ฐ ๋ํ๋๋ InnoDB์ ํธ๋์ญ์ ๋ณต๊ตฌ ๋ฉ์์ง
์ฟผ๋ฆฌ ์ฒ๋ฆฌ ๋์ค์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋ํ ์๋ฌ ๋ฉ์์ง
๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋ ์ปค๋ฅ์ ๋ฉ์์ง
InnoDB์ ๋ชจ๋ํฐ๋ง ๋๋ ์ํ ์กฐํ ๋ช ๋ น์ ๊ฒฐ๊ณผ ๋ฉ์์ง
MySQL์ ์ข ๋ฃ ๋ฉ์์ง
2. ์ ๋๋ด ์ฟผ๋ฆฌ ๋ก๊ทธ ํ์ผ(์ ๋๋ด ๋ก๊ทธ ํ์ผ, General log)
mysqld๊ฐ ์ํํ๋ ์์
์ ๋ํ ์ผ๋ฐ์ ์ธ ๋ก๊ทธ ํ์ผ์
๋๋ค. ์ฆ, MySQL ์๋ฒ์์ ์๊ฐ ๋จ์๋ก ์คํ๋๋ ์ฟผ๋ฆฌ์ ๋ด์ฉ์ด ๋ชจ๋ ๊ธฐ๋ก๋ฉ๋๋ค. ์ฌ๋ก์ฐ ์ฟผ๋ฆฌ ๋ก๊ทธ์๋ ๋ค๋ฅด๊ฒ ์ ๋๋ด ์ฟผ๋ฆฌ ๋ก๊ทธ๋ ์คํ๋๊ธฐ ์ ์ MySQL์ด ์ฟผ๋ฆฌ ์์ฒญ์ ๋ฐ์ผ๋ฉด ๋ฐ๋ก ๊ธฐ๋กํ๊ธฐ ๋๋ฌธ์ ์ฟผ๋ฆฌ ์คํ ์ค์ ์๋ฌ๊ฐ ๋ฐ์ํด๋ ์ผ๋จ ๋ก๊ทธ ํ์ผ์ ๊ธฐ๋ก๋ฉ๋๋ค. ์ฟผ๋ฆฌ ๋ก๊ทธ ํ์ผ์ ๊ฒฝ๋ก๋ general_log_file์ด๋ผ๋ ์ด๋ฆ์ ํ๋ผ๋ฏธํฐ์ ์ค์ ๋ผ ์์ต๋๋ค.
์ฟผ๋ฆฌ ๋ก๊ทธ๋ฅผ ํ์ผ์ด ์๋ ํ ์ด๋ธ์ ์ ์ฅํ๋๋ก ์ค์ ํ ์ ์๊ณ , ์ด ๊ฒฝ์ฐ์๋ ํ ์ด๋ธ์ SQL๋ก ์กฐํํ์ฌ ๋ก๊ทธ๋ฅผ ๊ฒํ ํ์ฌ์ผ ํฉ๋๋ค.

์ฟผ๋ฆฌ ๋ก๊ทธ๋ฅผ ํ์ผ๋ก ์ ์ฅํ ์ง ํ
์ด๋ธ๋ก ์ ์ฅํ ์ง๋ log_output ํ๋ผ๋ฏธํฐ๋ก ๊ฒฐ์ ๋ฉ๋๋ค. ๋ก๊ทธ ํ์ผ์ ๊ฒฝ๋ก์ ๊ด๋ จ๋ ์์ธํ ๋ด์ฉ์ ๋ฉ๋ด์ผ์ ์ฐธ์กฐํด์ฃผ์ธ์.
3. ์ฌ๋ก์ฐ ์ฟผ๋ฆฌ ๋ก๊ทธ
์ฌ๋ก์ฐ ์ฟผ๋ฆฌ ๋ก๊ทธ๋ ์คํํ๋ ๋ฐ long_query_time์ด ์ด์ ๊ฑธ๋ฆฌ๊ณ ์ต์ min_examined_row_limit ํ์ ๊ฒ์ฌํด์ผ ํ๋ SQL๋ฌธ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ฌ๋ก์ฐ ์ฟผ๋ฆฌ ๋ก๊ทธ๋ ์คํ์ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์ฟผ๋ฆฌ๋ฅผ ์ฐพ๋ ๋ฐ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์ต์ ํ ํ๋ณด๊ฐ ๋ ์ ์์ต๋๋ค.
์ ๋๋ด ์ฟผ๋ฆฌ ๋ก๊ทธ์ ๋ง์ฐฌ๊ฐ์ง๋ก log_output ์ต์
์ ํตํด ๋ก๊ทธ๋ฅผ ํ์ผ๋ก ์ ์ฅํ ์ง ํ
์ด๋ธ๋ก ์ ์ฅํ ์ง ์ ํํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ ๋๋ด ์ฟผ๋ฆฌ ๋ก๊ทธ ๋๋ ์ฌ๋ก์ฐ ์ฟผ๋ฆฌ ๋ก๊ทธ ํ์ผ์ ๋ด์ฉ์ด ์๋ ๋ง์์ ์ง์ ์ฟผ๋ฆฌ๋ฅผ ํ๋์ฉ ๊ฒํ ํ๊ธฐ์๋ ๋๋ฌด ํ๋ค ์ ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์ Precona์์ ๊ฐ๋ฐํ Percona Toolkit์ pt-query-digest ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ๋ฉด ๋น๋๋ ์ฒ๋ฆฌ ์ฑ๋ฅ๋ณ๋ก ์ ๋ ฌํด์ ์ดํด๋ณผ ์ ์์ต๋๋ค.
๐ฏ์ ๋ฆฌ
MySQL์ ์ํ๋ ๋ถํ๋ฅผ ์ผ์ผํค๋ ์์ธ์ ์ฐพ๊ณ ์ถ๋ค๋ฉด ์ ์ผ ๋จผ์ ๋ก๊ทธ ํ์ผ๋ค์ ์ดํด๋ด ์๋ค.
์๋ฌ ๋ก๊ทธ ํ์ผ์ MySQL ์คํ ์ค ๋ฐ์ํ๋ ์น๋ช ์ ์ธ ์๋ฌ์ ๋ํ ๋ฉ์์ง๋ฅผ ์ ์ฅํฉ๋๋ค.
์ ๋๋ด ์ฟผ๋ฆฌ ๋ก๊ทธ ํ์ผ์ MySQL ์๋ฒ์์ ์คํ๋๋ ๋ชจ๋ ์ฟผ๋ฆฌ์ ๋ด์ฉ์ด ๊ธฐ๋ก๋ฉ๋๋ค.
์ฌ๋ก์ฐ ์ฟผ๋ฆฌ ๋ก๊ทธ ์์คํ ๋ณ์
long_query_time์ ์ค์ ํ ์๊ฐ ์ด์์ ์๊ฐ์ด ์์๋ ๋ชจ๋ ์ฟผ๋ฆฌ๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค.




