๋ฒ๊ฐ์ฅํฐ์์ MySQL ์ฌ์ฉํ๋ฉด์ ์๊ฒ๋๊ฒ๋ค
์ง๋ 3๋ ๊ฐ ๋ฒ๊ฐ์ฅํฐ ์๋น์ค๋ฅผ ์ด์ํ๋ฉด์ ์ป์ MySQL ์ด์ ํ์ ์๋ ค๋๋ฆฝ๋๋ค.
1. ์๋น์ค ์ค์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ์ ์คํค๋ง๋ฅผ ์๋น์ค ์ค๋จ ์์ด ๋ณ๊ฒฝํ๋ ค๋ฉด?
InnoDB ์คํ ๋ฆฌ์ง์ ๊ฒฝ์ฐ ์คํค๋ง๋ฅผ ๋ณ๊ฒฝํ๋ฉด ๋ณ๊ฒฝ์ด ์๋ฃ๋ ๋ ๊น์ง Lock ์ด ๊ฑธ๋ฆฌ๊ฒ ๋์ด ์๋น์ค๊ฐ ์ ์ ์ค๋จ ๋์ด์ผ ํ์ต๋๋ค. ๊ทธ๋์ ์ ํฌ๋ Percona Toolkitย ์ pt-online-schema-change ๊ธฐ๋ฅ์ ์ฌ์ฉ ํ์ฌ ์ค๋จ ์์ด ๋ณ๊ฒฝํฉ๋๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ๋ ๊ฐ๋จํ๊ณ ๋๋ฆ ์์ ์ฑ์ด ์๋ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋จ์ ์ผ๋ก๋ ๊ธฐ์กด์ ํธ๋ฆฌ๊ฑฐ(Trigger)๊ฐ ๊ฑธ๋ ค ์๋ ํ ์ด๋ธ์๋ ์ ์ฉ์ด ๋ถ๊ฐ๋ฅ ํฉ๋๋ค.
๋์์ผ๋ก, MySQL 5.6์ ๋์ ํ๊ฑฐ๋ MySQL Cluster ์ ๊ฐ์ด ์คํค๋ง๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์์ ๋ก์ด ์ ํ์ ์ ํํ๋ ๊ฒ๋ ๋ฐฉ๋ฒ์ด์ง๋ง ์์ง ๊ฒ์ฆ์ด ๋ง์ด ๋์ง ์์์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ด ๋๋ฌด ๋ง์๋ฐ ์ด๋ป๊ฒ ํ๋์?
MySQL ํด๋ผ์ด์ธํธ์ ๋์ ์ ์ ๊ฐ์๊ฐ 1200๊ฐ๋ฅผ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ๋ฉด์ ๊ธฐ์กด MySQL 5.5 ์์ ์ฐ๋ ๋ ์์ฑ ์คํจํ์ฌ ์๋ฒ๊ฐ ์ฃฝ์ด๋ฒ๋ฆฌ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์์ต๋๋ค. ํด๋ผ์ด์ธํธ์์ ์ ์ ๊ฐ์๋ฅผ ์ค์ด๋๋ก ์์ ํ์์ผ๋ ํฅํ์๋ ์ ์ฌํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์์ด์ Connection Pool ๊ธฐ๋ฅ์ด ์ ๊ณต๋๋ย MariaDBย 5.5 ๋ฅผ ๋์ ํ์์ต๋๋ค. ๋๋ถ์ ์์ฒ๊ฐ์ ๋์ ์ ์์ด ๋ค์ด์๋ ์๋ฒ๊ฐ ์ฃฝ๋ ๊ฒฝ์ฐ๋ ์๋ฐฉํ ์ ์์์ต๋๋ค.
3. ์ค์๊ฐ ๋ฐฑ์ / ์ฆ๋ถ ๋ฐฑ์ ์ ํ๊ณ ์ถ์ด์
Xtrabackupย ์ ์ฌ์ฉํ๋ฉด ์๋ฒ๊ฐ ๋์๊ฐ๋ ์ค๊ฐ์๋ ๋ฐ์ดํฐ ๋ฐฑ์ ์ ํ ์ ์์ผ๋ฉฐ ์ฆ๋ถ ๋ฐฑ์ ๋ ๊ฐ๋ฅํฉ๋๋ค. ์ ํฌ๋ ์๋ฌด๋ฐ ๋ฌธ์ ์์ด ์ฌ์ฉ ํ๊ณ ์์ง๋ง ๋ฐฑ์ ๋ ๋ฐ์ดํฐ๊ฐ ๋ฌธ์ ์๋์ง ํ์ธ ํ๋ ๊ณผ์ ์ด ํ์ํฉ๋๋ค.
Xtrabackup ์ ๋จ์ ์ ๋ฐ์ดํฐ๋ฅผ ํต์งธ๋ก ๋ฐ์ด๋๋ฆฌ ํํ๋ก๋ง ๋ฝ์๋ผ ์ ์๋ค๋ ์ ์ ๋๋ค. ๊ทธ๋์ SQL ํํ๋ก ๋ฝ์๋ด๊ณ ์ถ์ ๊ฒฝ์ฐ์๋ Mydumper ๋ฅผ ์ถ์ฒํฉ๋๋ค.
4. ๋ช๋ฐฑ๋ง๊ฑด์ด ๋์ด๊ฐ๋ ํ ์ด๋ธ ๊ด๋ฆฌํ๊ธฐ
ํ๋ฃจ์ ์์ญ๋ง๊ฑด์ฉ ์ถ๊ฐ๋๋ ํ ์ด๋ธ์ ํํฐ์ ๋์ ํ๋๋ก ์ค๊ณํฉ๋๋ค. ์ฉ๋์ ๋ฐ๋ผ์ ๋ค๋ฅด๊ฒ ์ง๋ง ์ ํฌ๋ ๋์ฒด๋ก ์๊ฐ ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ถ๋ฆฌํด์ ์ ์ฅํฉ๋๋ค. ์ ์ ํ๋ง ์ฌ์ฉํด๋ ์์ญ์ต๊ฑด์ ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ ๋ถ๊ฐ๋ฅ ํ์ง ์์ต๋๋ค.
5. MyISAM์ Fulltext ๊ฒ์์ ๋ถํ๊ฐ ์ฌํด์
์ ํฌ๋ myisam ์คํ ๋ฆฌ์ง ์์ง์ ์ฌ์ฉ ํ๋ค๊ฐ ์ฌ๋ฌ๊ฐ์ง ๋ฌธ์ ์ ๋๋ฌธ์ Sphinxย ๊ฒ์์์ง์ ์ฌ์ฉ ํ๊ณ ์์ต๋๋ค.ย ์์น๊ฒ์, ํ๊ธ ๊ฒ์, ๋น ํ ์คํธ ๊ฒ์ ๋ชจ๋์์ ๋งค์ฐ ๋น ๋ฅธ ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋๋ค. ๊ฒ๋ค๊ฐ ํ์ฅ์ฑ์ด ์ข์์ ์ ๊ฐ ์๋ฒ์ ๋ถ์ฐ ๋ฐฐ์นํด๋์๋๋ฐ ๋ก๋๊ฐ ๊ฑฐ์ ์์์ต๋๋ค.
ย ย 6. ๋ง์คํฐ ์๋ฒ ์ฅ์ ๋ณต๊ตฌ ์๋ฃจ์ ์ ๋ญ๊ฐ ์ข๋์?
์ ํฌ๋ MariaDB Galera ๋ฅผ ๊ฒํ ์ค์ ์์ต๋๋ค. MySQL MHA, MySQL MMM ์ ์ฌ์ฉํ๋๊ฒ ๋ณด๋ค ์ค์ ์ด ๊ฐํธํ๊ณ ๋ณต์ก๋๊ฐ ์ค์ด๋ญ๋๋ค. DRBD์ Pacemaker/Corosync ์ ์ด์ฉํ ๋ฐฉ๋ฒ์ ๋นํด์ ์ฐ๊ธฐ ์๋๊ฐ ์กฐ๊ธ ๋จ์ด์ง์ง๋ง ์ฝ๊ธฐ ์๋๋ ์๋ฒ๋ฅผ ์ถ๊ฐํ ๋ ๋ง๋ค ๋์์ง๋๋ค.
DRBD ๊ธฐ๋ฐ๊ณผ Galera ๋ฅผ ๋น๊ตํ ์๋ฃ๋ฅผ ์ฐธ๊ณ ํ์ธ์
ย ย 7. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ชจ๋ํฐ๋ง ํ๋ ์ข์ ๋ฐฉ๋ฒ์ด ๋ญ๊น์?
MONyog๋ฅผ ์ถ์ฒํฉ๋๋ค.
์ค์๊ฐ์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ๋ถ์ํ๊ณ ๋๋ฆฐ ์ฟผ๋ฆฌ๋ค์ ์ทจํฉํ์ฌ ๊ฐ์ฅ ๋๋ฆฐ ์ฟผ๋ฆฌ๋ถํฐ ๊ฐ์ ํ ์ ์๋ค.ย
์ด๋ค ์ฟผ๋ฆฌ๊ฐ Lock ์ ์ ๋ฐํ๋์ง ์ ์ ์๋ค. ๋๋ผ์ด๊ฒ์, ์ด๋ค ์ฟผ๋ฆฌ๊ฐ Lock์ ์ํฅ์ ๋ฐ์๋์ง ๊น์ง ์ ์ ์๋ค. ํ์์ ์ด๋ค.
Cache Miss ๊ฐ์ ๊ฒ์ด ์ด๋ค๊ณณ์์ ๋ฐ์ํ๋์ง๋ฅผ ๋ณด๊ณ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ ค์ผ ํ๋์ง ๋ฑ์ ๊ฒฐ์ ํ ์ ์๊ฒ ํด์ค๋ค.
Connection Refuse ๊ฐ ์ผ๋ง๋ ์ผ์ด๋๋์ง ํ์ธ๊ฐ๋ฅํ๋ค.
์ด๋ค ํ ์ด๋ธ์ด ๋ง์ด ์ ๊ทผ๋๋์ง ์ ์ ์๋ค. (๊ฐ์ฅ ์ ๊ทผ์ด ๋ง์ ํ ์ด๋ธ ๋ถํฐ ์ต์ ํ๋ฅผ ํ ์ ์๋ค)
ย 8. ํธ๋ฆฌ๊ฑฐ(Trigger)๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๋ง์์ผ ํ๋?
์๊ตฌ์ฌํญ ๋ง๋ค ๋ค๋ฅผ๊ฒ์ ๋๋ค. ์ ํฌ์ ๊ฒฝํ์ผ๋ก๋ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ต์ฅํ ์ผ์ด ํธํด์ง๊ธด ํ์ง๋ง ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ณ๊ฒฝํ๋ ํด์ผํ๋ ๊ฒฝ์ฐ ์ญ์ ํ๊ณ ๋ค์ ์์ฑ ํด์ผ ํ๋๋ฐ Lock ์ด ๊ฑธ๋ ค์ ์๋น์ค๊ฐ ์ ์ ์ค๋จ๋๋ ๋ฌธ์ ๊ฐ ์๊ณ ์์์ ์ธ๊ธํ ๊ฒ ์ฒ๋ผ ์ค์๊ฐ์ผ๋ก ์คํค๋ง๋ฅผ ๋ณ๊ฒฝํ๋๋ฐ ๊ฑธ๋ฆผ๋์ด ๋ฉ๋๋ค. ๊ทธ๋์ ๊ฐ๋ฅํ๋ฉด ์ ํฌ๋ ์ดํ๋ฆฌ์ผ์ด์ ๋จ์์ ํด๊ฒฐํ๋ ค๊ณ ํฉ๋๋ค.
ย 9. ๋ก๊ทธ์ฑ ๋ฐ์ดํฐ ๊ด๋ฆฌ๋?
์ ํฌ๋ Data-driven ๋ฐฉ์์ผ๋ก ์๋น์ค๋ฅผ ๊ฐ์ ํด ๋๊ฐ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๊ธฐ ์ํด์๋ ๋ก๊ทธ๋ฅผ ์ ์์์ผ ํ๋๋ฐ์, Google Analytics ๋ Flurry๋ฅผ ์๋ง ํ์ฉํ๋ฉด ๋ค์ํ ๋ถ์๊ณผ ๊ณ ๊ฐ ์ธ๋ถํ ๊น์ง ํ ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์์ฒด์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์์์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ ๋๋ Redis์ ์์ฐจ์ ์ผ๋ก ์ ์ฅํ๊ณ 1๋ถ์ ํ๋ฒ์ฉ MySQL์ ๋ฒํฌ๋ก ์ ์ฅํฉ๋๋ค.
์ ๊ฐ ์๊ฐํ๋ MySQL์ ์ฅ์
์จ๋ผ์ธ ์คํค๋ง ๋ณ๊ฒฝ, ๊ณ ๊ฐ์ฉ์ฑ ๋๋ฌธ์ NoSQL์ ๊ณ ๋ คํ์ ์ด ๋ง์์ผ๋ MySQL์์ ํด๊ฒฐ ๊ฐ๋ฅํฉ๋๋ค.ย NoSQL์ ์๋ จ๋ ์ธ๋ ฅ์ ๊ตฌํ๊ธฐ ํ๋ค๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ ๋น์ฉ์ด ๋ ์ฌ๋ผ๊ฐ ์ ์๊ณ ย ๋ฐ์ดํฐ ๋ถ์์ SQL ๋งํผ ์ข์ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ง ๊ฒ์ด ๋ณ๋ก ์๋๊ฒ ๊ฐ์ต๋๋ค.ย ์ฐ๋ฆฌ ํ์ฌ์์๋ ๊ฐ๋ฐ์ ์๋ ์ฌ๋๋ค์ด ๋ถ์์ ๋ง์ด ํ๋๋ฐ SQL์ผ๋ก ๋ถ์ํ๋๋ฐ์ NoSQL์ ์ฌ์ฉํ๋ค๋ฉด ์กฐ๊ธ ํ๋ค์ง ์์์๊น์? ์คํํธ์ ์๊ฒ MySQL ์ ์ข์ ์ ํ์ธ๊ฒ ๊ฐ์ต๋๋ค.
MySQL ์ถ์ฒ ์ฌ์ดํธ
MySQL Technical Presentations 2013
http://www.percona.com/
http://www.mariadb.org/
https://code.google.com/p/shard-query/
๋ง์ง๋ง์ผ๋ก ๋ฒ๊ฐ์ฅํฐ์์ ๋ชจ๋ฐ์ผ ์ปค๋จธ์ค๋ฅผ ํ์ ํ ๊ฐ๋ฐ์๋ฅผ ์ฐพ์ต๋๋ค.
MySQL ์ ๋ฌธ๊ฐ๋ก ๊ฑฐ๋ญ๋๊ณ ์ถ์ ๊ฐ๋ฐ์
ํ์ด์ฌ์ด ๋ฌด์ง ์ข์ ๊ฐ๋ฐ์
๋ชจ๋ฐ์ผ์์ ๋งํผ์ ์ฅ์ /์ง๋ง์ผ์ ์ด๊ฒจ๋ณด๊ณ ์ถ์ ๊ฐ๋ฐ์
UX๋์์ด๋์ ํจ๊ป ๊ธฐํํ๋ฉฐ ๊ฐ๋ฐํ๊ณ ์ถ์ ๊ฐ๋ฐ์
์ด๋ ฅ์๋ฅผ [email protected] ์ผ๋ก ๋ณด๋ด์ฃผ์ธ์! ย ( ~ 2013/5)










