
- InnoDB๋ MySQL์์ ์ฌ์ฉํ ์ ์๋ ์คํ ๋ฆฌ์ง ์์ง ์ค ์ ์ผํ๊ฒ ๋ ์ฝ๋ ๊ธฐ๋ฐ ์ ๊ธ์ ์ ๊ณตํ๋ค.
- ์ด๋ฅผ ํตํด ๋์ ๋์์ฑ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ณ ์์ ์ ์ด๋ฉฐ ์ฑ๋ฅ์ด ๋ฐ์ด๋๋ค.
InnoDB์ ๋ชจ๋ ํ ์ด๋ธ์ ํ๋ผ์ด๋จธ๋ฆฌ ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ํด๋ฌ์คํฐ๋ง๋์ด ์ ์ฅ๋๋ค.
- ์ฆ, ํ๋ผ์ด๋จธ๋ฆฌ ํค ๊ฐ์ ์์๋๋ก ๋์คํฌ์ ์ ์ฅ๋๋ค.
- ๋ชจ๋ ์ธ์ปจ๋๋ฆฌ ์ธ๋ฑ์ค๋ ๋ ์ฝ๋์ ์ฃผ์ ๋์ ํ๋ผ์ด๋จธ๋ฆฌ ํค์ ๊ฐ์ ๋ ผ๋ฆฌ์ ์ธ ์ฃผ์๋ก ์ฌ์ฉํ๋ค.
- ํ๋ผ์ด๋จธ๋ฆฌ ํค๊ฐ ํด๋ฌ์คํฐ๋ง ์ธ๋ฑ์ค์ด๊ธฐ ๋๋ฌธ์, ํ๋ผ์ด๋จธ๋ฆฌ ํค๋ฅผ ์ด์ฉํ ๋ ์ธ์ง ์ค์บ์ ์๋นํ ๋นจ๋ฆฌ ์ฒ๋ฆฌ๋ ์ ์๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฟผ๋ฆฌ ์คํ ๊ณํ์์ ๋ค๋ฅธ ๋ณด์กฐ ์ธ๋ฑ์ค์ ๋นํด ๋น์ค์ด ๋๊ฒ ์ค์ ๋๋ค. (์คํ ๊ณํ์์ ์ ํ๋ ํ๋ฅ ์ด ๋๋ค) โก๏ธ 8.8์ฅ์์ ์์ธํ ๋ค๋ฃธ
MyISAM ์คํ ๋ฆฌ์ง ์์ง์ ํด๋ฌ์คํฐ๋ง ํค๋ฅผ ์ง์ํ์ง์๋๋ค.
- MyISAM ํ ์ด๋ธ์์ ํ๋ฌ์ด๋จธ๋ฆฌ ํค์ ์ธ์ปจ๋๋ฆฌ ์ธ๋ฑ์ค๋ ๊ตฌ์กฐ์ ์ผ๋ก ์ฐจ์ด๊ฐ ์๋ค.
- ํ๋ผ์ด๋จธ๋ฆฌ ํค๋ ์ ๋ํฌ ์ ์ฝ์ ๊ฐ์ง ์ธ์ปจ๋๋ฆฌ ์ธ๋ฑ์ค์ผ ๋ฟ์ด๋ค.
- MyISAM ํ ์ด๋ธ์ ํ๋ผ์ด๋จธ๋ฆฌ ํค๋ฅผ ํฌํจํ๋ ๋ชจ๋ ์ธ๋ฑ์ค๋ ๋ฌผ๋ฆฌ์ ์ธ ์ฃผ์๊ฐ(ROWID)๋ฅผ ๊ฐ๋๋ค. โก๏ธ 4.3.3์์ ์์ธํ ๋ค๋ฃธ
์ธ๋ ํค๋ InnoDB ์คํ ๋ฆฌ์ง ์์ง ๋ ๋ฒจ์์ ์ง์ํ๋ ๊ธฐ๋ฅ์ผ๋ก MyISAM, MEMORY ํ ์ด๋ธ์์๋ ์ฌ์ฉํ ์ ์๋ค.
- ์ธ๋ ํค๋ ์๋ฒ ์ด์์ ๋ถํธํจ์ผ๋ก ์์ฑํ์ง ์๋ ๊ฒฝ์ฐ๋ ์์ง๋ง ๊ฐ๋ฐ ํ๊ฒฝ์์๋ ์ข์ ๊ฐ์ด๋ ์ญํ ์ ํ๋ค.
- InnoDB์์ ์ธ๋ํค๋ ๋ถ๋ชจ์ ์์ ํ ์ด๋ธ ๋ชจ๋ ํด๋น ์นผ๋ผ์ ์ธ๋ฑ์ค ์์ฑ์ด ํ์ํ๊ณ
- ๋ณ๊ฒฝ ์ ๋ฐ๋์ ๋ถ๋ชจ๋ ์์ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ์๋์ง ์ฒดํฌํ๋ ์์ ์ด ํ์ํ๋ค.
- ๊ทธ๋ก ์ธํด ๋ฐ๋๋ฝ์ด ๋ฐ์ํ ๋๊ฐ ๋ง์ผ๋ฏ๋ก ๊ฐ๋ฐ ์ ์ธ๋ํค ์กด์ฌ์ ์ฃผ์ํ์.
์ธ๋ํค๊ฐ ๋ณต์กํ๊ฒ ์ฝํ๊ฒฝ์ฐ ์๋ ๋ฐ์ดํฐ ์์ฑ/์คํค๋ง ๋ณ๊ฒฝ ๋ฑ์ ์์ ์ด ์คํจํ ์ ์๋ค.
- ๊ธด๊ธํ๊ฒ ๋ญ๊ฐ ์กฐ์น๋ฅผ ํด์ผํ๋๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ
foreign_key_checks
์์คํ ๋ณ์๋ฅผ OFF๋ก ์ค์ ํ๋ฉด ์ธ๋ ํค ๊ด๊ณ์ ๋ํ ์ฒดํฌ์์ ์ ์ผ์์ ์ผ๋ก ๋ฉ์ถ ์ ์๋ค. - ๋ฉ์ถ๋ฉด ๋ ์ฝ๋ ์ ์ฌ๋ ์ญ์ ๋ฑ์ ์์ ๋ ๋ถ๊ฐ์ ์ธ ์ฒดํฌ๊ฐ ํ์์๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.
mysql> SET foreign_key_checks=OFF;
// ์์
์คํ
mysql> SET foreign_key_checks=ON;
์ด๋ GLOBAL, SESSION ๋ชจ๋ ์ค์ ๊ฐ๋ฅํ ๋ณ์์ด๋ค. ์ด๋ฐ ์์ ์ ์ํํ ๋ ํ์ฌ ์ธ์ ์๋ง ์ ์ฉํด์ผํ๋ฏ๋ก SESSIONํค์๋๋ฅผ ๋ช ์ํ๋์ง ์๋๋ฉด ์๋ฌด๊ฒ๋ ๋ช ์ํ์ง ์์์ผํ๋ค. ์์ ์ด ์๋ฃ๋๋ฉด ๋ฐ๋์ ํ์ฌ ์ธ์ ์ ์ข ๋ฃํ๊ฑฐ๋, ์ธ๋ํค ์ฒดํฌ๋ฅผ ํ์ฑํํ์.
ํ์ง๋ง ์ผ์์ ์ผ๋ก ํด์ ํ๋ค๊ณ ํด์ ๋ถ๋ชจ-์์ ๊ด๊ณ๊ฐ ๊นจ์ง ์ํ๋ก ์ ์งํด๋๋๋ ๊ฑด ์๋๋ค.
- ๋ง์ฝ ์ธ๋ํค ์ฒดํฌ๋ฅผ ์ค์งํ ์ํ์์ ์ธ๋ํค ๊ด๊ณ๋ฅผ ๊ฐ์ง ๋ถ๋ชจ ๋ ์ฝ๋๋ฅผ ์ญ์ ํ๋ค๋ฉด, ์์ ๋ ์ฝ๋๋ ์ญ์ ํด์ผํ๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ผ๊ด์ฑ์ ๋ง์ถฐ์ค ํ ๋ค์ ์ธ๋ํค ์ฒดํฌ ๊ธฐ๋ฅ์ ํ์ฑํํด์ผํ๋ค.
๋ง์ฝ ์ธ๋ํค ์ฒดํฌ๊ฐ ์ค์ง๋์๋ค๋ฉด
ON DELETE CASCADE
,ON UPDATE CASCADE
์ต์ ์ ๋ฌด์๋๋ค. ์ด๋ ์๋์ผ๋ก ์์ ํ ์ด๋ธ์ ๋งค์น๋๋ row์๋ ๋๊ฐ์ด DELETE, UPDATE๋ฅผ ๋ฐ์ํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
๋ ์ฝ๋ ๋ ๋ฒจ์ ํธ๋์ญ์ ์ ์ง์ํ๋ DBMS๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ด๋ฉฐ, MVCC์ ๊ฐ์ฅ ํฐ ๋ชฉ์ ์ ์ ๊ธ์ ์ฌ์ฉํ์ง ์๋ ์ผ๊ด๋ ์ฝ๊ธฐ๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์๋ค.
- InnoDB๋ Undo log๋ฅผ ์ด์ฉํด ์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค.
- ์ฌ๊ธฐ์ ๋ฉํฐ ๋ฒ์ ์ ํ๋์ ๋ ์ฝ๋์ ๋ํด ์ฌ๋ฌ ๊ฐ์ ๋ฒ์ ์ด ๋์์ ๊ด๋ฆฌ๋๋ค๋ ์๋ฏธ์ด๋ค.
- ํ ์ด๋ธ์ ์์ฑํ๋ค.
mysql> CREATE TABLE member (
m_id INT NOT NULL,
m_name VARCHAR(20) NOT NULL,
m_area VARCHAR(100) NOT NULL,
PRIMARY KEY (m_id),
INDEX ix_area (m_area)
);
- ๋ ์ฝ๋ ํ๊ฑด์ INSERTํ๋ค.
mysql> INSERT INTO member (m_id, m_name, m_area) VALUES (12, 'ํ๊ธธ๋', '์์ธ');
mysql> COMMIT;

- ํด๋น ๋ ์ฝ๋๋ฅผ ์ ๋ฐ์ดํธ ํ๋ค.
mysql> UPDATE member SET m_area = '๊ฒฝ๊ธฐ' where m_id = 12;

update ์ฟผ๋ฆฌ๊ฐ ์คํ๋๋ฉด ์ปค๋ฐ ์คํ ์ฌ๋ถ์ ๊ด๊ณ ์์ด InnoDB ๋ฒํผํ์ ์๋ก์ด ๊ฐ์ผ๋ก ์ ๋ฐ์ดํธ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ ํ์ผ(๋์คํฌ)๋ ์ฒดํฌํฌ์ธํธ๋ InnoDB์ Write ์ค๋ ๋์ ์ํด ์ ๋ฐ์ดํธ๋ผ์์ ์ ๋ ์๊ณ ์๋ ์ ๋ ์๋ค.
- InnoDB๊ฐ ACID๋ฅผ ๋ณด์ฅํ๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก InnoDB์ ๋ฒํผํ๊ณผ ๋ฐ์ดํฐํ์ผ์ ๋์ผํ ์ํ๋ผ๊ณ ๊ฐ์ ํด๋ ๋ฌด๋ฐฉํ๋ค.
์์ง COMMIT์ด๋ ROLLBACK์ ํ์ง ์์ ์ํ์์ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ์กฐํํ๋ฉด ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๊น?
SELECT * FROM member where m_id = 12;
- ์ด๋ ์์คํ ๋ณ์(transaction_isolation)์ ์ค์ ๋ Isolation level(๊ฒฉ๋ฆฌ์์ค)์ ๋ฐ๋ผ ๋ค๋ฅด๋ค.
READ_UNCOMMITTED
: ๋ฒํผ ํ์ด ํ์ฌ ๊ฐ์ง๊ณ ์๋ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ ๋ฐํํ๋ค.READ_COMMITTED
or ๊ทธ ์ด์์ ๊ฒฉ๋ฆฌ: ์์ง ์ปค๋ฐ์ด ๋์ง ์์๊ธฐ ๋๋ฌธ์ ๋ฒํผ ํ์ด๋ ๋ฐ์ดํฐ ํ์ผ ๋์ ๋ณ๊ฒฝ๋๊ธฐ ์ด์ ์ ๋ด์ฉ์ ๋ณด๊ดํ๊ณ ์๋ ์ธ๋ ์์ญ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ค.- ๊ทธ ์ด์์ ๊ฒฉ๋ฆฌ:
REPEATABLE_READ
,SERIALIZABLE
- ๊ทธ ์ด์์ ๊ฒฉ๋ฆฌ:
์ด๋ฌํ ๊ณผ์ ์ DBMS์์๋ MVCC๋ผ๊ณ ํํํ๋ค. ํ๋์ ๋ ์ฝ๋์ ๋ํด 2๊ฐ์ ๋ฒ์ ์ด ์ ์ง๋๊ณ , ํ์์ ๋ฐ๋ผ ์ด๋ ๋ฐ์ดํฐ๊ฐ ๋ณด์ฌ์ง๋์ง ์ํฉ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ๊ตฌ์กฐ๋ค.
- ์ฌ๊ธฐ์๋ ํ๊ฐ์ ๋ฐ์ดํฐ๋ง๊ฐ์ง๊ณ ์ค๋ช ํ์ง๋ง, ์์ ๋ฒ์ ์ ๋ฐ์ดํฐ๋ ๋ฌดํํ ๋ง์์ง ์ ์๋ค.
- ๋ง์ฝ ํธ๋์ญ์ ์ด ๊ธธ์ด์ง๋ฉด ์ธ๋์์ ๊ด๋ฆฌํ๋ ์์ ๋ฐ์ดํฐ๋ ์ญ์ ๋์ง ๋ชปํ๊ณ ์ค๋ ๊ด๋ฆฌ๋ผ์ผํ๋ค.
- ์์ฐํ ์ธ๋ ์์ญ์ด ์์คํ ํ ์ด๋ธ์คํ์ด์ค์ ๊ณต๊ฐ์ ๋ง์ด ์ฐจ์งํ๊ฒ๋๋ค.
์ ์ํ์์ ์ปค๋ฐ์ ์คํํ๋ฉด, InnoDB๋ ๋์ด์์ ๋ณ๊ฒฝ ์์ ์์ด ์ง๊ธ์ ์ํ๋ฅผ ์๊ตฌ์ ์ธ ๋ฐ์ดํฐ๋ก ๋ง๋ค์ด ๋ฒ๋ฆฐ๋ค.
ํ์ง๋ง ๋กค๋ฐฑ์ ์คํํ๋ฉด InnoDB๋ ์ธ๋ ์์ญ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฒํผ ํ๋ก ๋ค์ ๋ณต๊ตฌํ๊ณ , ์ธ๋ ์์ญ์ ๋ด์ฉ์ ์ญ์ ํ๋ค.
์ปค๋ฐ์ ํ๋ค๊ณ ํด์ ์ธ๋ ์์ญ์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋ก ์ญ์ ๋๋ ๊ฒ์ ์๋๋ฉฐ, ์ธ๋ ์์ญ์ ํ์๋ก ํ๋ ํธ๋์ญ์ ์ด ์์ ๋ ์ญ์ ๋๋ค.
MVCC ๊ธฐ์ ์ ํตํด, ์ฝ๊ธฐ ์์ ์ ๋ค๋ฅธ ํธ๋์ญ์ ์ด ๊ฐ์ง๊ณ ์๋ ์ ๊ธ์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์์ ์ ์ํํ๋ค.
SERIALIZABLE
๋ฅผ ์ ์ธํREAD_UNCOMMITTED
,READ_COMMITTED
,REPEATABLE_READ
๊ฒฉ๋ฆฌ ์์ค์์ ์์ํ ์ฝ๊ธฐ(SELECT)๋ ๋ค๋ฅธ ํธ๋์ญ์ ์ ๋ณ๊ฒฝ ์์ ๊ณผ ๊ด๊ณ์์ด ์ ๊ธ์ ๋๊ธฐํ์ง ์๊ณ ๋ฐ๋ก ์คํํ๋ค.

๋ณ๊ฒฝ ํธ๋์ญ์ ์ด ๋ค๋ฅธ ์ฌ์ฉ์์ SELECT ์์ ์ ๋ฐฉํดํ์ง ์๋๋ค. โก๏ธ ์ ๊ธ ์๋ ์ผ๊ด๋ ์ฝ๊ธฐ
- ์ค๋ ์๊ฐ ํ์ฑ ์ํ์ธ ํธ๋์ญ์ ์ผ๋ก ์ธํด MySQL ์๋ฒ๊ฐ ๋๋ ค์ง๊ฑฐ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๋๊ฐ ์๋๋ฐ
- ์ด๋ฐ ์ผ๊ด๋ ์ฝ๊ธฐ๋ฅผ ์ํด ์ธ๋ ๋ก๊ทธ๋ฅผ ์ญ์ ํ์ง ๋ชปํ๊ณ ๊ณ์ ์ ์งํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ค.
- ๋ฐ๋ผ์ ํธ๋์ญ์ ์ด ์์๋๋ค๋ฉด ๊ฐ๋ฅํ ๋นจ๋ฆฌ ๋กค๋ฐฑ/์ปค๋ฐ์ผ๋ก ํธ๋์ญ์ ์ ์๋ฃํ๋ ๊ฒ์ด ์ข๋ค.
InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ๋ด๋ถ์ ์ผ๋ก ์ ๊ธ์ด ๊ต์ฐฉ ์ํ์ ๋น ์ง์ง ์์๋์ง ์ฒดํฌํ๊ธฐ ์ํด ์ ๊ธ ๋๊ธฐ ๋ชฉ๋ก์ ๊ทธ๋ํ(Wait-for List)ํํ๋ก ๊ด๋ฆฌํ๋ค.
- ๋ฐ๋๋ฝ ๊ฐ์ง ์ค๋ ๋๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ๊ธ ๋๊ธฐ ๊ทธ๋ํ๋ฅผ ๊ฒ์ฌํด ๊ต์ฐฉ ์ํ์ธ ํธ๋์ญ์ ๋ค์ ์ฐพ์ ํ๋๋ฅผ ๊ฐ์ ์ข ๋ฃํ๋ค.
- ๊ฐ์ ์ข ๋ฃ ๊ธฐ์ค์ ํธ๋์ญ์ ์ ์ธ๋ ๋ก๊ทธ ์์ด๋ฉฐ, ์ธ๋ ๋ก๊ทธ๋ฅผ ์ ๊ฒ ๊ฐ์ง ํธ๋์ญ์ ์ด ๋กค๋ฐฑ์ ๋์์ด ๋๋ค.
- ์ ๊ฒ ๊ฐ์ก๋ค๋ ์ด์ผ๊ธฐ๋? ๋กค๋ฐฑ ํด๋ ์ธ๋ ์ฒ๋ฆฌํด์ผํ ๋ด์ฉ์ด ์ ๋ค๋ ๊ฒ, ๊ฐ์ ๋กค๋ฐฑ์ผ๋ก ์ธํ ์๋ฒ ๋ถํ๋ ์ ๋ค๋ ๊ฒ.
์ฐธ๊ณ ๋ก ์์ ๋ ์ด์ด์ธ MySQL ์์ง์์ ๊ด๋ฆฌ๋๋ ํ ์ด๋ธ ์ ๊ธ(Lock Tables ๋ช ๋ น์ผ๋ก ์ ๊ธด ํ ์ด๋ธ)์ ๋ณผ ์ ์์ด์ ๋ฐ๋๋ฝ ๊ฐ์ง๊ฐ ๋ถํ์คํ ์ ๋ ์๋ค.
์ด๋innodb_table_locks
์์คํ ๋ณ์๋ฅผ ํ์ฑํํ๋ฉด ๋ ์ฝ๋ ์ ๊ธ๋ฟ ์๋๋ผ ํ ์ด๋ธ ์ ๊ธ๊น์ง ๊ฐ์งํ ์ ์๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ฐ๋๋ฝ ๊ฐ์ง ์ค๋ ๋์ ์์ ์ ํฌ๊ฒ ๋ถ๋ด๋์ง์์ง๋ง, ๋์ ์ฒ๋ฆฌ ์ค๋ ๋๊ฐ ๋งค์ฐ ๋ง์์ง๊ฑฐ๋ ๊ฐ ํธ๋์ญ์ ์ด ๊ฐ์ง ์ ๊ธ์ ๊ฐ์๊ฐ ๋ง์์ง๋ฉด ๋๋ ค์ง๋ค.
- ๋ฐ๋๋ฝ ๊ฐ์ง ์ค๋ ๋๋ ์ ๊ธ ๋ชฉ๋ก์ ๊ฒ์ฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ๊ธ ์ํ๊ฐ ๋ณ๊ฒฝ๋์ง ์๋๋ก ์ ๊ธ ๋ชฉ๋ก์ด ์ ์ฅ๋ ์ ๊ธ ํ ์ด๋ธ์ ์๋ก์ ์ ๊ธ์ ๊ฑธ๊ณ ๋ฐ๋๋ฝ ์ค๋ ๋๋ฅผ ์ฐพ๋๋ค.
- ๋ฐ๋๋ฝ ๊ฐ์ง ์ค๋ ๋๊ฐ ๋๋ ค์ง๋ฉด, ์๋น์ค ์์ฒญ์ ์ํ์ค์ธ ์ค๋ ๋๋ ๋ ์ด์ ์์ ์ ์งํํ์ง ๋ชปํ๊ณ ๋๊ธฐํ๋ฉด์ ์๋น์ค์ ์ ์ํฅ์ ์ค๋ค.
- ๋ฐ๋ผ์ ๋์ ์ฒ๋ฆฌ ์ค๋ ๋๊ฐ ๋งค์ฐ ๋ง์ ๊ฒฝ์ฐ ๋ฐ๋๋ฝ ๊ฐ์ง ์ค๋ ๋๋ ๋ ๋ง์ CPU ์์์ ์๋ชจํ ์ ์๋ค.
์ด๋ฐ ์ํฉ์์ innodb_deadlock_detect
๋ฅผ OFF๋ก ์ค์ ํ์ฌ ๋ฐ๋๋ฝ ๊ฐ์ง ์ค๋ ๋์ ์๋์ ๋ฉ์ถ๋ค.
- ๋ฐ๋๋ฝ ์ํฉ์ด ๋ฐ์ํ๊ฒ ๋๋ค๋ฉด ๋ฌดํ์ ๋๊ธฐํ๊ฒ ๋๊ฒ ์ง๋ง,
innodb_lock_wait_timeout
๋ฅผ ํ์ฑํํ๋ฉด ์ผ์ ์๊ฐ์ด ์ง๋ ํ ์๋์ผ๋ก ์์ฒญ์ด ์คํจํ๊ณ ์๋ฌ๋ฅผ ๋ฐํํ๋ค. innodb_lock_wait_timeout
๋ ์ด๋จ์๋ก ์ค์ ๊ฐ๋ฅํ๋ฉฐ, ์ ๊ธ์ ์ค์ ์๊ฐ๋์ ํ๋ํ์ง ๋ชปํ๋ฉด ์ฟผ๋ฆฌ๋ ์คํจํ๋ค.innodb_deadlock_detect
๋ฅผ ๋นํ์ฑํํ๋ ๊ฒฝ์ฐ๋ผ๋ฉดinnodb_lock_wait_timeout
์ default ๊ฐ์ธ 50์ด๋ณด๋ค ๋ฎ์ ์๊ฐ์ผ๋ก ๋ณ๊ฒฝํด์ ์ฌ์ฉํ ๊ฒ์ ๊ถ์ฅํ๋ค.
๋ง์ฝ PK ๋๋ ์ธ์ปจ๋๋ฆฌ ์ธ๋ฑ์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋งค์ฐ ๋์ ๋์์ฑ ์ฒ๋ฆฌ๋ฅผ ์๊ตฌํ๋ ์๋น์ค๊ฐ ์๋ค๋ฉด
innodb_deadlock_detect
๋ฅผ ๋นํ์ฑํํด ์ฑ๋ฅ์ ๋น๊ตํด๋ณด์.
- InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ๋งค์ฐ ๊ฒฌ๊ณ ํด์ ๋ฐ์ดํฐ ํ์ผ์ด ์์๋๊ฑฐ๋ MySQL ์๋ฒ๊ฐ ์์๋์ง ๋ชปํ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์์๋ค.
- ํ์ง๋ง ๋์คํฌ๋ ์๋ฒ ํ๋์จ์ด ์ด์๋ก ์๋ ๋ณต๊ตฌ๊ฐ ๋ถ๊ฐํ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ ์ ์๋ค.
- InnoDB ๋ฐ์ดํฐ ํ์ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก MySQL ์๋ฒ ์์ ์ ํญ์ ์๋ ๋ณต๊ตฌ๋ฅผ ์ํํ๋ค.
- ์ด ๋จ๊ณ์์ ์๋์ผ๋ก ๋ณต๊ตฌ๋ ์ ์๋ ์์์ด ์๋ค๋ฉด ์๋ ๋ณต๊ตฌ๋ฅผ ๋ฉ์ถ๊ณ MySQL ์๋ฒ๋ ์ข ๋ฃ๋๋ค.
- InnoDB์ ๋ก๊ทธํ์ผ์ด ์์๋๋ค๋ฉด
innodb_force_recovery
๋ฅผ 6์ผ๋ก ์ค์ ํ๊ณ MySQL์๋ฒ๋ฅผ ๊ธฐ๋ํ๋ค. - InnoDB ํ
์ด๋ธ์ ๋ฐ์ดํฐ ํ์ผ์ด ์์๋๋ค๋ฉด
innodb_force_recovery
๋ฅผ 1๋ก ์ค์ ํ๊ณ MySQL ์๋ฒ๋ฅผ ๊ธฐ๋ํ๋ค - ์ด๋ค ๋ถ๋ถ์ด ๋ฌธ์ ์ธ์ง ์ ์ ์๋ค๋ฉด, 1~6๊น์ง ๋ณ๊ฒฝํ๋ฉด์ MySQL์ ์ฌ์์ํด๋ณธ๋ค.
- ๊ฐ์ด ์ปค์ง์๋ก ๊ทธ๋งํผ ์ฌ๊ฐํ ์ํฉ์ด๊ธฐ๋๋ฌธ์ ์์ค ๊ฐ๋ฅ์ฑ์ด ์ปค์ง๊ณ ๋ณต๊ตฌ ๊ฐ๋ฅ์ฑ์ ์์์ง๋ค.
์ผ๋จ MySQL ์๋ฒ๊ฐ ๊ธฐ๋๋๊ณ InnoDB ํ
์ด๋ธ์ด ์ธ์๋๋ค๋ฉด, mysqldump
๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ฅํ ๋งํผ ๋ฐฑ์
ํ๊ณ ๊ทธ ๋ฐ์ดํฐ๋ก MySQL ์๋ฒ์ DB์ ํ
์ด๋ธ์ ๋ค์ ์์ฑํ๋ ๊ฒ์ด ์ข๋ค.
innodb_force_recovery
๊ฐ 0์ด ์๋ ๋ณต๊ตฌ๋ชจ๋์์๋ select ์ด์ธ์ insert, update, delete ๊ฐ์ ์ฟผ๋ฆฌ๋ ์ํํ ์ ์๋ค.
๊ทธ๋๋ ์๋ฒ๊ฐ ์์๋์ง ์์ผ๋ฉด ๋ง์ง๋ง ๋ฐฑ์ ์ผ๋ก DB๋ฅผ ์๋ก ๊ตฌ์ถํ๊ณ ๋ฐ์ด๋๋ฆฌ ๋ก๊ทธ๋ฅผ ์ฌ์ฉํด ์ต๋ํ ์ฅ์ ์์ ๊น์ง ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ ์ ๋ ์๋ค.
InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ๊ฐ์ฅ ํต์ฌ์ ์ธ ๋ถ๋ถ, ๋์คํฌ์ ๋ฐ์ดํฐ ํ์ผ์ด๋ ์ธ๋ฑ์ค ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์บ์ํด ๋๋ ๊ณต๊ฐ์ด๋ค.
์ฐ๊ธฐ ์์ ์ ์ง์ฐ์์ผ ์ผ๊ด ์์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฒํผ์ญํ ๋ ๊ฐ์ดํ๋ค. ๋ฒํผ๋ฅผ ํตํด ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์ ํ๋ฒ์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋๋คํ ๋์คํฌ ์์ ์ ํ์๋ฅผ ์ค์ผ ์ ์๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ ์ฒด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ 80%์ ๋๋ฅผ ๋ฒํผํ๋ก ์ค์ ํ๋ผ๋ ๊ฒ์๋ฌผ๋ ์์ง๋ง, OS์ ํด๋ผ์ด์ธํธ ์ค๋ ๋๊ฐ ์ฌ์ฉํ ๋ฉ๋ชจ๋ฆฌ๋ ์ถฉ๋ถํ ๊ณ ๋ คํด์ ์ค์ ํด์ผํ๋ค.
- MySQL ์๋ฒ๋ด์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์๋ก ํ๋ ๋ถ๋ถ์ ํฌ๊ฒ ์์ง๋ง ๋ ์ฝ๋ ๋ฒํผ๊ฐ ์๋นํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.
- ๋ ์ฝ๋ ๋ฒํผ: ๊ฐ ํด๋ผ์ด์ธํธ ์ธ์ ์์ ํ ์ด๋ธ ๋ ์ฝ๋๋ฅผ ์ฝ๊ณ ์ธ ๋ ๋ฒํผ๋ก ์ฌ์ฉํ๋ ๊ณต๊ฐ. ์ปค๋ฅ์ ์ด ๋ง๊ณ ์ฌ์ฉํ๋ ํ ์ด๋ธ๋ ๋ง๋ค๋ฉด ๋ ์ฝ๋ ๋ฒํผ ๊ณต๊ฐ์ด ๊ฝค ๋ง์ด ํ์ํ ์๋ ์๋ค.
- ์ด ๋ฒํผ ๊ณต๊ฐ์ ์ง์ ์ค์ ์ด ๋ถ๊ฐ๋ฅํ๋ฉฐ, ์ ์ฒด ์ปค๋ฅ์ ๊ฐ์์ ๊ฐ ์ปค๋ฅ์ ์์ ์ฝ๊ณ ์ฐ๋ ํ ์ด๋ธ ๊ฐ์์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ค.
- ๋ํ ๋์ ์ผ๋ก ํด์ ๋๊ธฐ๋ ํ๋ฏ๋ก ์ ํํ ํ์ํ ๊ณต๊ฐ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ ์ ์๋ค.
5.7๋ฒ์ ๋ถํฐ๋ InnoDB ๋ฒํผํ์ ํฌ๊ธฐ๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํ ์ ์๋๋ก ๊ฐ์ ๋ฌ๋ค.
- ๋ฐ๋ผ์ ํฌ๊ธฐ๋ฅผ ์์ ๊ฐ์ผ๋ก ์ค์ ํด ์กฐ๊ธ์ฉ ์ฆ๊ฐ์ํค๋ ๋ฐฉ๋ฒ์ด ์ต์ ์ด๋ค.
- ์ฒ์ MySQL ์๋ฒ๋ฅผ ์ค๋นํ๋ค๋ฉด, OS ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ 50% ์ ๋๋ง ๋ฒํผํ๋ก ์ค์ ํ๊ณ ๋๋จธ์ง ๊ณต๊ฐ์ MySQL ์๋ฒ์ OS, ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ ์ ์๋ ๊ณต๊ฐ์ผ๋ก ํ๋ณดํด์ฃผ๋ ๊ฒ์ด ์ข๋ค.
- ๊ทธ๋ฆฌ๊ณ ์กฐ๊ธ์ฉ ์ฌ๋ ค๊ฐ์ ์ ์ต์ ์ ์ ์ฐพ๋๋ค.
InnoDB ๋ฒํผํ์ innodb_buffer_pool_size
์์คํ
๋ณ์๋ก ํฌ๊ธฐ๋ฅผ ์ค์ ํ ์ ์์ผ๋ฉฐ, ๋์ ์ผ๋ก ๋ฒํผํ ํฌ๊ธฐ๋ฅผ ํ์ฅํ ์ ์๋ค.
- ํ์ง๋ง ์ด๋ ํฌ๋ฆฌํฐ์ปฌํ ๋ณ๊ฒฝ์ด๋ฏ๋ก ํ๊ฐํ ์์ ์ ์งํํ๋ ๊ฒ์ด ์ข๋ค. (ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๋๊ฑด ์ํฅ๋๊ฐ ํฌ์ง ์์ง๋ง, ์ค์ด๋ ์์ ์ ์ํฅ๋๊ฐ ๋งค์ฐ ํฌ๋ค.)
- InnoDB๋ ๋ด๋ถ์ ์ผ๋ก 128MB ์ฒญํฌ๋จ์๋ก ์ชผ๊ฐ์ด ๊ด๋ฆฌ๋๋ฉฐ, ๋ฒํผํ์ ์ค์ด๊ฑฐ๋ ๋๋ฆฌ๋ ๋จ์๋ก ์ฌ์ฉ๋๋ค.
InnoDB ๋ฒํผํ์ ์ ํต์ ์ผ๋ก ๋ฒํผ ํ ์ ์ฒด๋ฅผ ๊ด๋ฆฌํ๋ ์ ๊ธ(์ธ๋งํฌ์ด)๋ก ์ธํด ๋ด๋ถ ์ ๊ธ ๊ฒฝํฉ์ ๋ง์ด ์ ๋ฐํด์๋ค. ์ด๋ฐ ๊ฒฝํฉ์ ์ค์ด๊ธฐ ์ํด ๋ฒํผํ์ ์ฌ๋ฌ๊ฐ๋ก ์ชผ๊ฐ์ด ๊ด๋ฆฌํ ์ ์๊ฒ ๊ฐ์ ๋๋ค.
- ๋ฒํผํ์ด ์์ ๋ฒํผํ๋ก ์ชผ๊ฐ์ง๋ฉด์, ์ ๊ธ(์ธ๋งํฌ์ด)์์ฒด๋ ๊ฒฝํฉ์ด ๋ถ์ฐ๋๋ ํจ๊ณผ๋ฅผ ๋ธ๋ค.
innodb_buffer_pool_instance
์์คํ ๋ณ์๋ฅผ ์ด์ฉํด ์ฌ๋ฌ๊ฐ๋ก ๋ถ๋ฆฌํด์ ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ, ๊ฐ ๋ฒํผํ์ ๋ฒํผ ํ ์ธ์คํด์ค๋ผ๊ณ ํํํ๋ค.- ๊ธฐ๋ณธ์ 8๊ฐ๋ก ์ด๊ธฐํ๋์ง๋ง, ๋ฒํผํ์ ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด 1GB ๋ฏธ๋ง์ด๋ผ๋ฉด 1๊ฐ๋ง ์์ฑ๋๋ค.
- 40GB ์ดํ๋ผ๋ฉด 8๊ฐ๋ฅผ ์ ์งํ๊ณ , ๋ ํฌ๋ค๋ฉด ๋ฒํผ ํ ์ธ์คํด์ค ๋น 5GB์ ๋๊ฐ ๋๊ฒ ๊ฐ์๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ข๋ค.
InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ๋ฒํผ ํ์ ํ์ด์ง ํฌ๊ธฐ(innodb_page_size
์์คํ
๋ณ์)์ ์กฐ๊ฐ์ผ๋ก ์ชผ๊ฐ์ด ๋ฐ์ดํฐ๋ฅผ ํ์๋ก ํ ๋ ํด๋น ๋ฐ์ดํฐ ํ์ด์ง๋ฅผ ์ฝ์ด ๊ฐ ์กฐ๊ฐ์ ์ ์ฅํ๋ค.
๋ฒํผํ์ ํ์ด์ง ํฌ๊ธฐ ์กฐ๊ฐ์ ๊ด๋ฆฌํ๊ธฐ ์ํด InnoDB ์คํ ๋ฆฌ์ง ์์ง์ LRU(Least Recently Used) ๋ฆฌ์คํธ์ ํ๋ฌ์(Flush) ๋ฆฌ์คํธ, ํ๋ฆฌ(Free) ๋ฆฌ์คํธ 3๊ฐ ์๋ฃ๊ตฌ์กฐ๋ก ๊ด๋ฆฌํ๋ค.
- ๋น์ด ์๋ ํ์ด์ง๋ค์ ๋ชฉ๋ก. ์ฌ์ฉ์์ ์ฟผ๋ฆฌ๊ฐ ์๋กญ๊ฒ ๋ฐ์ดํฐ ํ์ด์ง๋ฅผ ์ฝ์ด์์ผํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ

- LRU์ MRU(Most Recently Used) ๋ฆฌ์คํธ๊ฐ ๊ฒฐํฉ๋ ํํ
- Old ์๋ธ๋ฆฌ์คํธ ์์ญ =
LRU
, New ์๋ธ๋ฆฌ์คํธ ์์ญ =MRU
LRU ๋ฆฌ์คํธ ๋ชฉ์
- ๋์คํฌ๋ก๋ถํฐ ํ๋ฒ ์ฝ์ด์จ ํ์ด์ง๋ฅผ ์ต๋ํ ์ค๋ซ๋์ InnoDB ๋ฒํผํ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํด ๋์คํฌ ์ฝ๊ธฐ๋ฅผ ์ต์ํํ๋ ๊ฒ
[ InnoDB ์คํ ๋ฆฌ์ง์์ง์์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ๊ณผ์ ]
- ํ์ํ ๋ ์ฝ๋๊ฐ ์ ์ฅ๋ ๋ฐ์ดํฐ ํ์ด์ง๊ฐ ๋ฒํผ ํ์ ์๋์ง ๊ฒ์ฌ
- InnoDB ์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด ํ์ด์ง๋ฅผ ๊ฒ์
- ํด๋น ํ ์ด๋ธ์ ์ธ๋ฑ์ค(B-Tree)๋ฅผ ์ด์ฉํด ๋ฒํผ ํ์์ ํ์ด์ง๋ฅผ ๊ฒ์
- ๋ฒํผ ํ์ ์ด๋ฏธ ๋ฐ์ดํฐ ํ์ด์ง๊ฐ ์์๋ค๋ฉด ํด๋น ํ์ด์ง์ ํฌ์ธํฐ๋ฅผ MRU ๋ฐฉํฅ์ผ๋ก ์น๊ธ
- ๋์คํฌ์์ ํ์ํ ๋ฐ์ดํฐ ํ์ด์ง๋ฅผ ๋ฒํผํ์ ์ ์ฌํ๊ณ , ์ ์ฌ๋ ํ์ด์ง์ ๋ํ ํฌ์ธํฐ๋ฅผ LRU ํค๋ ๋ถ๋ถ์ ์ถ๊ฐ
- ๋ฒํผ ํ์ LRU ํค๋ ๋ถ๋ถ์ ์ ์ฌ๋ ๋ฐ์ดํฐ ํ์ด์ง๊ฐ ์ค์ ๋ก ์ฝํ๋ฉด MRU ํค๋ ๋ถ๋ถ์ผ๋ก ์ด๋
- Read Ahead์ ๊ฐ์ด ๋๋ ์ฝ๊ธฐ์ ๊ฒฝ์ฐ, ๋์คํฌ์ ๋ฐ์ดํฐ ํ์ด์ง๊ฐ ๋ฒํผ ํ๋ก ์ ์ฌ๋ ๋์ง๋ง ์ค์ ์ฟผ๋ฆฌ์์ ์ฌ์ฉ๋์ง ์์ ์๋ ์์ผ๋ฉฐ, ์ด๋ฐ ๊ฒฝ์ฐ MRU๋ก ์ด๋๋์ง ์์
- ๋ฒํผํ์ ์์ฃผํ๋ ๋ฐ์ดํฐ ํ์ด์ง๋ ์ฌ์ฉ์ ์ฟผ๋ฆฌ๊ฐ ์ผ๋ง๋ ์ต๊ทผ์ ์ ๊ทผํ๋์ง์ ๋ฐ๋ผ ๋์ด(AGE)๊ฐ ๋ถ์ฌ๋๋ค.
- ๋ฒํผํ์ ์์ฃผํ๋ ๋์ ์ค๋ซ๋์ ์ฟผ๋ฆฌ์์ ์ฌ์ฉ๋์ง ์์ผ๋ฉด ๋์ด๊ฐ ์ค๋๋๊ณ ๊ฒฐ๊ตญ ๋ฒํผํ์์ ์ ๊ฑฐ๋๋ค. โก๏ธ Eviction
- ์ฟผ๋ฆฌ์ ์ํด ์ฌ์ฉ๋๋ฉด ๋์ด๋ ์ด๊ธฐํ๋๊ณ MRU์ ํค๋ ๋ถ๋ถ์ผ๋ก ์ฎ๊ฒจ์ง๋ค.
- ํ์ํ ๋ฐ์ดํฐ๊ฐ ์์ฃผ ์ ๊ทผ๋๋ค๋ฉด ํด๋น ํ์ด์ง์ ์ธ๋ฑ์ค ํค๋ฅผ ์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค์ ์ถ๊ฐ
์ฆ, ๋ฒํผ ํ ๋ด๋ถ์์ ์ต๊ทผ ์ ๊ทผ ์ฌ๋ถ์ ๋ฐ๋ผ ๋ฐ์ดํฐ ํ์ด์ง๋ ์๋ก ๊ฒฝ์ํ๋ฉด์ MRU ๋๋ LRU๋ก ์ด๋ํ๋ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ InnoDB ์คํ ๋ฆฌ์ง ์์ง์ LRU์ ๋์ผ๋ก ๋ฐ๋ ค๋ ๋ฐ์ดํฐ ํ์ด์ง๋ค์ ๋ฒํผํ์์ ์ ๊ฑฐํ์ฌ ๋น๊ณต๊ฐ์ ๋ง๋ ๋ค.
๊ทธ๋์ ์ฒ์ ์ฝํ ๋ฐ์ดํฐ ํ์ด์ง๊ฐ ์์ฃผ ์ฌ์ฉ๋๋ค๋ฉด MRU ์์ญ์์ ๊ณ์ ์ด์๋จ๊ฒ๋๊ณ , ๋ฐ๋๋ก ๊ฑฐ์ ์ฌ์ฉ๋์ง ์์ผ๋ฉด LRU ๋์ผ๋ก ๋ฐ๋ฌ๋ InnoDB ๋ฒํผํ์์ ์ ๊ฑฐ๋ ๊ฒ์ด๋ค.
๋์คํฌ๋ก ๋๊ธฐํ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ํ์ด์ง(๋ํฐ ํ์ด์ง)์ ๋ณ๊ฒฝ ์์ ๊ธฐ์ค์ ํ์ด์ง ๋ชฉ๋ก์ ๊ด๋ฆฌํ๋ค.
- ๋์คํฌ์์ ์ฝ์ ์ํ ๊ทธ๋๋ก ๋ณ๊ฒฝ์ด ์๋ค๋ฉด ํ๋ฌ์ ๋ฆฌ์คํธ์ ๊ด๋ฆฌ๋์ง ์๋๋ค.
- ํ์ง๋ง ํ๋ฒ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ๊ฐํด์ง ๋ฐ์ดํฐ ํ์ด์ง๋ ํ๋ฌ์ ๋ฆฌ์คํธ์ ๊ด๋ฆฌ๋๊ณ ํน์ ์์ ์ด ๋๋ฉด ๋์คํฌ๋ก ๊ธฐ๋ก๋ผ์ผ ํ๋ค.
- ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด InnoDB๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ฆฌ๋ ๋ก๊ทธ์ ๊ธฐ๋กํ๊ณ , ๋ฒํผ ํ์ ๋ฐ์ดํฐ ํ์ด์ง์๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ฐ์ํ๋ค.
- ๊ทธ๋์ ๋ฆฌ๋ ๋ก๊ทธ์ ๊ฐ ์ํธ๋ฆฌ๋ ํน์ ๋ฐ์ดํฐ ํ์ด์ง์ ์ฐ๊ฒฐ๋๋ค.
ํ์ง๋ง ๋ฆฌ๋ ๋ก๊ทธ๊ฐ ๋์คํฌ๋ก ๊ธฐ๋ก๋๋ค๊ณ ํด์ ๋ฐ์ดํฐ ํ์ด์ง๊ฐ ๋์คํฌ๋ก ๊ธฐ๋ก๋๋ค๋ ๊ฒ์ ํญ์ ๋ณด์ฅํ์ง ์๋๋ค. (๋ฐ๋๋ ๋ง์ฐฌ๊ฐ์ง)
- InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ์ฒดํฌํฌ์ธํธ๋ฅผ ๋ฐ์์์ผ ๋์คํฌ์ ๋ฆฌ๋ ๋ก๊ทธ์ ๋ฐ์ดํฐ ํ์ด์ง์ ์ํ๋ฅผ ๋๊ธฐํํ๊ฒ ๋๋ค.
- ์ฒดํฌ ํฌ์ธํธ๋ MySQL ์๋ฒ๊ฐ ์์๋ ๋ InnoDB ์คํ ๋ฆฌ์ง ์์ง์ด ๋ฆฌ๋ ๋ก๊ทธ์ ์ด๋๋ถ๋ถ๋ถํฐ ๋ณต๊ตฌ๋ฅผ ์คํํด์ผํ ์ง ํ๋จํ๋ ๊ธฐ์ค์ ์ด๋ค.
๋ฒํผํ์ ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ฉํ๋ ๋งํผ ์ค์ ํ ์๋ก ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ด ๋นจ๋ผ์ง๋ค.
- ๋ฌผ๋ก ๋ชจ๋ ๋ฐ์ดํฐ ํ์ผ์ด ๋ฒํผํ์ ์ ์ฌ๋ ์ ๋์ ๊ณต๊ฐ์ด๋ผ๋ฉด ๋๋ ค๋ ์ฑ๋ฅ์ ๋์์ด ๋์ง ์๋๋ค.
- ๊ทธ๋ ์ง ์๋ค๋ฉด ๋์คํฌ ๋ฐ์ดํฐ๊ฐ ๋ฒํผ ํ ๋ฉ๋ชจ๋ฆฌ๋ก ์ ์ฌ๋๋ฉด ์ฑ๋ฅ์ด ์ข์์ง๋ค.
๋ฒํผํ์ DB ์๋ฒ ์ฑ๋ฅ ํฅ์์ ์ํด ๋ฐ์ดํฐ ์บ์์ ์ฐ๊ธฐ ๋ฒํผ๋ง์ด๋ผ๋ 2๊ฐ์ง ์ฉ๋๊ฐ์๋ค.
- ๋ฒํผํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ๋๋ฆฌ๊ธฐ๋ ๋ฐ์ดํฐ ์บ์ ๊ธฐ๋ฅ๋ง ํฅ์ ์ํจ ๊ฒ.
- ์ฐ๊ธฐ ๋ฒํผ๋ง์ ํฅ์์ํค๊ธฐ ์ํด์๋ ๋ฒํผํ๊ณผ ๋ฆฌ๋๋ก๊ทธ์ ๊ด๊ณ๋ฅผ ์์์ผํ๋ค.

๋ฒํผํ = ํด๋ฆฐ ํ์ด์ง + ๋ํฐ ํ์ด์ง
- ํด๋ฆฐ ํ์ด์ง: ๋์คํฌ์์ ์ฝ์ ํ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์ง ์์ ํ์ด์ง
- ๋ํฐ ํ์ด์ง: ๋์คํฌ์์ ์ฝ์ ํ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ํ์ด์ง
- ์ฌ๊ธฐ์ ๋ํฐํ์ด์ง๋ ๋ฐ์ดํฐ ์ํ๊ฐ ๋์คํฌ์ ๋ค๋ฅด๊ธฐ๋๋ฌธ์, ์ธ์ ๊ฐ๋ ๋์คํฌ๋ก ๊ธฐ๋ก๋์ผํ๋ค.
- ํ์ง๋ง ๋ฒํผํ์ ๋ฌดํ์ ๋จธ๋ฌด๋ฅผ ์ ์๋ ๊ฒ์ ์๋๋ค.
๋ฆฌ๋ ๋ก๊ทธ๋ 1๊ฐ ์ด์์ ๊ณ ์ ํฌ๊ธฐ ํ์ผ์ ์ฐ๊ฒฐํด์ ์ํ๊ณ ๋ฆฌ ์ฒ๋ผ ์ฌ์ฉํ๋ค.
- ์ฆ, ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ๊ณ์ ๋ฐ์ํ๋ฉด ๋ฆฌ๋ ๋ก๊ทธ ํ์ผ์ ๊ธฐ๋ก๋๋ ๋ก๊ทธ ์ํธ๋ฆฌ๋ ์ด๋ ์๊ฐ ์๋ก์ด ๋ก๊ทธ ์ํธ๋ฆฌ๋ก ๋ฎ์ด์ฐ์ธ๋ค.
- ๊ทธ๋์ ์ ์ฒด ๋ฆฌ๋ ๋ก๊ทธ ํ์ผ์์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ๊ณผ ์ฌ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ ๊ณต๊ฐ์ ๊ตฌ๋ถํด์ ๊ด๋ฆฌํด์ผํ๋ค.
- ์ฌ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ ๊ณต๊ฐ = ํ์ฑ ๋ฆฌ๋ ๋ก๊ทธ(Active Redo Log) = ํ์ดํ๋ฅผ ๊ฐ์ง ์ํธ๋ฆฌ๋ค
โ ๋ฒํผํ์ ์๋ ๋ค๋ชจ = ๊ณ ์ ํฌ๊ธฐ ํ์ผ(๋ฆฌ๋ ๋ก๊ทธ ํ์ผ), ๋ฆฌ๋ ๋ก๊ทธ์ ์๋ ๋ค๋ชจ = ๋ฆฌ๋ ๋ก๊ทธ ์ํธ๋ฆฌ
LSN(Log Sequence Number): ๋ฆฌ๋ ๋ก๊ทธ ํ์ผ์ ๊ณต๊ฐ์ ๊ณ์ ์ํ๋์ด ์ฌ์ฌ์ฉ๋์ง๋ง, ๋งค๋ฒ ๊ธฐ๋ก๋ ๋๋ง๋ค ๋ก๊ทธ ํฌ์ง์ ์ ๊ณ์ ์ฆ๊ฐ๋ ๊ฐ์ ๊ฐ๋๋ค.
- InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ฒดํฌํฌ์ธํธ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์์ผ, ๋ฆฌ๋๋ก๊ทธ์ ๋ฒํผํ์ ๋ํฐํ์ด์ง๋ฅผ ๋์คํฌ๋ก ๋๊ธฐํํ๋๋ฐ
- ์ด๋ ๊ฒ ๋ฐ์ํ ์ฒดํฌํฌ์ธํธ ์ค ๊ฐ์ฅ ์ต๊ทผ ์ฒดํฌํฌ์ธํธ ์ง์ ์ LSN์ด ํ์ฑ ๋ฆฌ๋ ๋ก๊ทธ ๊ณต๊ฐ์ ์์์ ์ด ๋๋ค.
- ํ์ง๋ง ํ์ฑ ๋ฆฌ๋ ๋ก๊ทธ ๊ณต๊ฐ์ ๋ง์ง๋ง์ ๊ณ์ ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ ์ฒดํฌํฌ์ธํธ์ ๋ฌด๊ดํ๋ค.
- ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ์ต๊ทผ ์ฒดํฌํฌ์ธํธ์ LSN๊ณผ ๋ง์ง๋ง ๋ฆฌ๋ ๋ก๊ทธ ์ํธ๋ฆฌ์ LSN์ ์ฐจ์ด๋ฅผ ์ฒดํฌํฌ์ธํธ ์์ด์ง(Checkpoint Age)๋ผ๊ณ ํ๋ค.
- ์ฆ, ์ฒดํฌํฌ์ธํธ ์์ด์ง๋ ํ์ฑ ๋ฆฌ๋ ๋ก๊ทธ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ์ผ์ปซ๋๋ค.
๋ํฐํ์ด์ง๋ ํน์ ๋ฆฌ๋๋ก๊ทธ์ํธ๋ฆฌ์ ๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ , ์ฒดํฌํฌ์ธํธ๊ฐ ๋ฐ์ํ๋ฉด ์ฒดํฌํฌ์ธํธ LSN๋ณด๋ค ์์ ๋ฆฌ๋ ๋ก๊ทธ ์ํธ๋ฆฌ์ ๊ด๋ จ๋ ๋ํฐํ์ด์ง๋ ๋ชจ๋ ๋์คํฌ๋ก ๋๊ธฐํ๋ผ์ผํ๋ค.
- ๋ฌผ๋ก ์ฒดํฌํฌ์ธํธ LSN๋ณด๋ค ์์ LSN๊ฐ์ ๊ฐ์ง ๋ฆฌ๋ ๋ก๊ทธ ์ํธ๋ฆฌ๋ ๋์คํฌ๋ก ๋๊ธฐํ ๋ผ์ผํ๋ค.
- InnoDB ๋ฒํผํ์ 100GB์ด๋ฉฐ ๋ฆฌ๋ ๋ก๊ทธ ํ์ผ์ ์ ์ฒด ํฌ๊ธฐ๋ 100MB์ธ ๊ฒฝ์ฐ
- ๋ฆฌ๋ ๋ก๊ทธ ํ์ผ ํฌ๊ธฐ๊ฐ 100MB๋ฐ์ ์๋๊ธฐ ๋๋ฌธ์ ์ฒดํฌํฌ์ธํธ ์์ด์ง๋ ์ต๋ 100MB๋ง ํ์ฉ๋๋ค.
- ํ๊ท ๋ฆฌ๋๋ก๊ทธ์ํธ๋ฆฌ๊ฐ 4kb๋ผ๋ฉด 100MB/4KB = 25600๊ฐ ์ ๋์ ๋ํฐ ํ์ด์ง๋ง ๋ฒํผํ์ ๋ณด๊ดํ ์ ์๋ค.
- ๋ฐ์ดํฐ ํ์ด์ง๊ฐ 16KB๋ผ๋ฉด ํ์ฉ๊ฐ๋ฅํ ์ ์ฒด ๋ํฐ ํ์ด์ง ํฌ๊ธฐ๋ 25600 * 16KB = 400MB ์์ค๋ฐ์ ์๋๋ค.
- ์ด ๊ฒฝ์ฐ ๋ฒํผํ์ ํฌ๊ธฐ๋ ๋งค์ฐ ํฌ์ง๋ง, ์ค์ ์ฐ๊ธฐ ๋ฒํผ๋ง์ ์ํ ํจ๊ณผ๋ ๊ฑฐ์ ๋ชป๋ณธ๋ค.
- InnoDB ๋ฒํผํ์ 100MG์ด๋ฉฐ ๋ฆฌ๋ ๋ก๊ทธ ํ์ผ์ ์ ์ฒด ํฌ๊ธฐ๋ 100GB์ธ ๊ฒฝ์ฐ
- ์ ๋ฐฉ์์ผ๋ก ๊ณ์ฐํ๋ฉด ์ ์ฒด ๋ํฐ ํ์ด์ง ํฌ๊ธฐ๊ฐ 400GB๊ฐ ๋๋ค.
- ํ์ง๋ง ๋ฒํผํ ํฌ๊ธฐ๊ฐ 100MB์ด๊ธฐ ๋๋ฌธ์ ์ต๋ ํ์ฉ ๊ฐ๋ฅํ ๋์น ํ์ด์ง๋ 100MB๊ฐ ๋๋ค.
1๋ฒ์ ์๋ชป๋ ์ค์ ์ด๋ค. 2๋ฒ์ ์ด๋ก ์ ์ผ๋ก ๋ฌธ์ ๊ฐ ์์ด๋ณด์ด์ง๋ง, ์ด ์ํ๋ก ์๋น์ค๋ฅผ ์ด์ํ๋ค ๋ณด๋ฉด ๊ธ์์ค๋ฌ์ด ๋์คํฌ ์ฐ๊ธฐ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
- ๋ฒํผํ์ ๋ํฐ ํ์ด์ง์ ๋น์จ์ด ๋๋ฌด ๋์ ์ํ์์ ๊ฐ์๊ธฐ ๋ฒํผํ์ด ํ์ํด์ง๋ ์ํฉ์ด ์ค๋ฉด InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ๋งค์ฐ ๋ง์ ๋ํฐํ์ด์ง๋ฅผ ํ๋ฒ์ ๊ธฐ๋กํด์ผํ๋ ์ํฉ์ด ์จ๋ค.
- ์ฒ์๋ถํฐ ๋ฆฌ๋๋ก๊ทธํ์ผ์ ํฌ๊ธฐ๋ฅผ ์ ์ ํ ์ ํํ๊ธฐ ์ด๋ ต๋ค๋ฉด 5~10GB ์์ค์ผ๋ก ์ ํํ๊ณ ํ์ํ ๋๋ง๋ค ์กฐ๊ธ์ฉ ๋๋ ค๊ฐ๋ฉฐ ์ต์ ๊ฐ์ ์ ํํ๋ ๊ฒ์ด ์ข๋ค.
๋ฒํผํ ํฌ๊ธฐ๊ฐ 100GB๋ผ๊ณ ํด์ ๋ฆฌ๋ ๋ก๊ทธ์ ๊ณต๊ฐ์ด 100GB๊ฐ ๋ผ์ผํ๋ ๊ฒ์ ์๋๋ค. ๋ฆฌ๋ ๋ก๊ทธ๋ ๋ณ๊ฒฝ๋ถ๋ง ๊ฐ์ง๊ณ ๋ฒํผํ์ ๋ฐ์ดํฐ ํ์ด์ง ํต์งธ๋ก ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ๋ฐ์ํด๋ ๋ฆฌ๋ ๋ก๊ทธ๋ ํจ์ฉ ์์ ๊ณต๊ฐ๋ง ์์ผ๋ฉด๋๋ค.
๋ฒํผํ๊ณผ ๋ฆฌ๋๋ก๊ทธ ๋ค์ ๊ณต๋ถํ์ํจ..
- ๋ฒํผํ
- ๋ฆฌ๋๋ก๊ทธ ํ์ผ, ๋ฆฌ๋๋ก๊ทธ ์ํธ๋ฆฌ
- ์ฒดํฌํฌ์ธํธ ์์ด์ง
InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ๋ฒํผํ์์ ์์ง ๋์คํฌ๋ก ๊ธฐ๋ก๋์ง ์์ ๋ํฐ ํ์ด์ง๋ค์ ์ฑ๋ฅ์์ ์ ์ํฅ ์์ด ๋์คํฌ์ ๋๊ธฐํ ํ๊ธฐ ์ํด ์๋ 2๊ฐ์ ํ๋์ ๊ธฐ๋ฅ์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ฒ๋ฆฌํ๋ค.
- ํ๋ฌ์ ๋ฆฌ์คํธ(Flush_list)ํ๋ฌ์
- LRU ๋ฆฌ์คํธ(LRU_list)ํ๋ฌ์
InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ๋ฆฌ๋ ๋ก๊ทธ ๊ณต๊ฐ์ ์ฌํ์ฉ์ ์ํด ์ฃผ๊ธฐ์ ์ผ๋ก ์ค๋๋ ๋ฆฌ๋ ๋ก๊ทธ ์ํธ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๊ณต๊ฐ์ ๋น์์ผ ํ๋ค.
- ์ด๋ ๋ฆฌ๋ ๋ก๊ทธ ๊ณต๊ฐ์ ์ง์ฐ๋ ค๋ฉด ๋ฐ๋์ ๋ฒํผํ์ ๋ํฐ ํ์ด์ง๊ฐ ๋จผ์ ๋์คํฌ๋ก ๋๊ธฐํ๋ผ์ผ ํ๋ค.
- ์ด๋ฅผ ์ํด InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ์ฃผ๊ธฐ์ ์ผ๋ก ํ๋ฌ์ ๋ฆฌ์คํธ(Flush_list)ํ๋ฌ์ ํจ์๋ฅผ ํธ์ถํ์ฌ
- ์ค๋์ ์ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ ํ์ด์ง ์์๋๋ก ๋์คํฌ์ ๋๊ธฐํํ๋ ์์ ์ ์ํํ๋ค.
- ์ด๋ ์ธ์ ๋ถํฐ ์ผ๋ง๋ ๋ง์ ๋ํฐ ํ์ด์ง๋ฅผ ํ๋ฒ์ ๋์คํฌ๋ก ๊ธฐ๋กํ๋๋์ ๋ฐ๋ผ ์ฌ์ฉ์ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ์ ์ํฅ์ด ๊ฒฐ์ ๋๋ค.
- ์ด๋ฅผ ๋ถ๋๋ฝ๊ฒ ์ฒ๋ฆฌํ๊ธฐ ์ํด InnoDB๋ ์๋์ ๊ฐ์ ์์คํ ๋ณ์๋ฅผ ์ ๊ณตํ๋ค.
์์คํ ๋ณ์
- innodb_page_cleaners
- innodb_max_dirty_pages_pct_lwm
- innodb_max_dirty_pages_pct
- innodb_io_capacity
- innodb_io_capacity_max
- innodb_flush_neighbors
- innodb_adaptive_flushing
- innodb_daaptive_flushing_lwn
ํด๋ฆฌ๋ ์ค๋ ๋(Cleaner Tread): ๋ํฐ ํ์ด์ง๋ฅผ ๋์คํฌ๋ก ๋๊ธฐํํ๋ ์ค๋ ๋
innodb_page_cleaners
๋ ํด๋ฆฌ๋ ์ค๋ ๋ ๊ฐ์๋ฅผ ์กฐ์ ํ๋ค.innodb_page_cleaners
์ด ๋ฒํผํ ์ธ์คํด์ค ๊ฐ์๋ณด๋ค ๋ง์ ๊ฒฝ์ฐinnodb_buffer_pool_instances
์ค์ ๊ฐ์ ํด๋ฆฌ๋ ์ค๋ ๋ ๊ฐ์์ ๋ง์ถฐ์ค๋ค. (ํด๋ฆฌ๋์ค๋ ๋ 1:1 ์ ๋ด)- ํ์ง๋ง
innodb_page_cleaners
๊ฐ ๋ฒํผํ ์ธ์คํด์ค ๊ฐ์๋ณด๋ค ์ ์ ๊ฒฝ์ฐ ํ๋์ ํด๋ฆฌ๋ ์ค๋ ๋๊ฐ ์ฌ๋ฌ๊ฐ ๋ฒํผํ ์ธ์คํด์ค๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ ๋์ผํ ๊ฐ์ผ๋ก ๋ง์ถฐ์ฃผ์.
InnoDB ๋ฒํผํ์ ๋ฒํผํ์ด ๊ฐ์ง ํ์ด์ง 90%๊น์ง ๋ํฐํ์ด์ง๋ฅผ ๊ฐ์ง ์ ์๋ค.
- ํ์ง๋ง ์ด ๊ฐ์ด ๋๋ฌด ๋์ ๊ฒฝ์ฐ
innodb_max_dirty_pages_pct
๋ก ๋ํฐํ์ด์ง ๋น์จ์ ์กฐ์ ํ ์ ์๋ค. - ์ผ๋ฐ์ ์ผ๋ก ๋ํฐํ์ด์ง๋ฅผ ๋ง์ด ๊ฐ์ง๊ณ ์์ ์๋ก ๋์คํฌ ์ฐ๊ธฐ ์์ ์ ๋ฒํผ๋งํจ์ผ๋ก์จ ์ฌ๋ฌ๋ฒ ๋์คํฌ ์ฐ๊ธฐ๋ฅผ ํ๋ฒ์ผ๋ก ์ค์ด๋ ํจ๊ณผ๋ฅผ ๊ทน๋ํ ํ ์ ์๋ค.
- ๊ฐ๋ฅํ ๊ธฐ๋ณธ๊ฐ์ ์ ์งํ์.
InnoDB ๋ฒํผํ์ ๋ํฐํ์ด์ง๊ฐ ๋ง์์๋ก ๋์คํฌ ์ฐ๊ธฐ ํญ๋ฐ(Disk IO Burst)ํ์์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ค.
innodb_io_capacity
์ค์ ๊ฐ ๊ธฐ์ค์ผ๋ก ๋ํฐํ์ด์ง ์ฐ๊ธฐ๋ฅผ ์คํํ์ง๋ง, ๋์คํฌ๋ก ๊ธฐ๋ก๋๋ ๊ฐ์๋ณด๋ค ๋ง์ด ๋ฐ์ํ๋ฉด ๋ฒํผํ์ ๋ํฐํ์ด์ง๊ฐ ๊ณ์ ์ฆ๊ฐํ๊ฒ ๋๊ณ- ์ด๋์๊ฐ 90% ๋น์จ์ ๋์ด๊ฐ๋ฉด InnoDB ์์ง์ ๊ธ์์ค๋ฝ๊ฒ ํ์ด์ง๋ฅผ ๋์คํฌ๋ก ๊ธฐ๋กํด์ผํ๋ค๊ณ ํ๋จํ๋ค. โก ๋์คํฌ ์ฐ๊ธฐ ํญ๋ฐ(Disk IO Burst)ํ์ ๋ฐ์
- ์ ๋ฌธ์ ๋ฅผ ์ํํ๊ธฐ ์ํด
innodb_max_dirty_pages_pct_lwm
์์คํ ๋ณ์๋ฅผ ์ฌ์ฉํด ์ผ์ ์์ค ์ด์์ ๋ํฐํ์ด์ง๊ฐ ๋ฐ์ํ๋ฉด ์กฐ๊ธ์ฉ ๋์คํฌ๋ก ๊ธฐ๋กํ๊ฒ ํ๋ค. - ๊ธฐ๋ณธ๊ฐ์ 10% ์์ค์ธ๋ฐ, ๋ง์ฝ ํ์ด์ง ๋น์จ์ด ์ผ๋ง ๋์ง ์๋ ์ํ์์ ๋์คํฌ ์ฐ๊ธฐ๊ฐ ๋ง์ด ๋ฐ์ํ๊ณ ์๋ค๋ฉด, ์กฐ๊ธ ๋ ๋์ ๊ฐ์ผ๋ก ์กฐ์ ํ์ฌ ๋์คํฌ ์ฐ๊ธฐ ํ์๋ฅผ ์ค์ผ ์ ์๋ค.
innodb_io_capacity
, innodb_io_capacity_max
๋ ๊ฐ DB์๋ฒ์์ ์ด๋์ ๋์ ๋์คํฌ ์ฝ๊ณ ์ฐ๊ธฐ๊ฐ ๊ฐ๋ฅํ์ง๋ฅผ ์ค์ ํ๋ ๊ฐ์ด๋ค.
innodb_io_capacity
: ๋์คํฌ๊ฐ ์ ์ ํ ์ฒ๋ฆฌํ ์ ์๋ ์์ค์ ๊ฐinnodb_io_capacity_max
: ๋์คํฌ๊ฐ ์ต๋ ์ฑ๋ฅ์ ๋ฐํํ ๋ ์ด๋ ์ ๋์ ์ฝ๊ณ ์ฐ๊ธฐ๊ฐ ๊ฐ๋ฅํ์ง ์ค์ - ์ฌ๊ธฐ์ ์ธ๊ธํ๋ ์ฝ๊ณ ์ฐ๊ธฐ๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋๊ฐ ์ํํ๋ ๋์คํฌ ์์ ์ ์๋ฏธํ๋ค.
- ๋๋ถ๋ถ ๋ฒํผํ์ ๋ํฐํ์ด์ง ์ฐ๊ธฐ๊ฐ ํด๋น
- ํ์ง๋ง InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ์ฌ์ฉ์์ ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด์๋ ๋์คํฌ ์ฝ๊ธฐ๋ฅผ ํด์ผํ๋ค.
- ๋ฐ๋ผ์ ํ์ฌ ์ฅ์ฐฉ๋ ๋์คํฌ์ ์ต๋์ฒ๋ฆฌ๋(ex 1000IOPS)์ ๊ทธ๋๋ก ์์คํ ๋ณ์์ ์ค์ ํด์๋ ์๋๋ค.
๊ด๋ฆฌํด์ผํ ์๋ฒ๊ฐ ๋ง๋ค๋ฉด innodb_io_capacity
, innodb_io_capacity_max
์ค์ ์ ์๋นํ ๋ฒ๊ฑฐ๋กญ๋ค. ๊ทธ๋์ ์ด๋ํฐ๋ธ ํ๋ฌ์(Adaptive flush)๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
- ์ด๋
innodb_adaptive_flushing
๋ก ์ผ๊ณ ๋ ์ ์๋ค. - ์ด๋ํฐ๋ธ ํ๋ฌ์๊ฐ ํ์ฑํ ๋๋ฉด, ์ค์ ๊ฐ์ ์์กดํ์ง ์๊ณ ์๋ก์ด ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค.
- ๋ํฐํ์ด์ง๋ฅผ ์ด๋์ ๋ ๋์คํฌ๋ก ๊ธฐ๋กํด์ผํ ์ง๋ ์ฌ์ค ์ด๋์ ๋๋ก ๋ํฐํ์ด์ง๊ฐ ์์ฑ๋๋์ง ๋ถ์ํ๋๊ฒ์ด๋ค.
- ์ด๋ ๊ฒฐ๊ตญ ๋ฆฌ๋ ๋ก๊ทธ๊ฐ ์ด๋์ ๋๋ก ์ฆ๊ฐํ๋์ง์ ๊ฐ๋ค.
- ๋ฐ๋ผ์ ์ด๋ํฐ๋ธ ํ๋ฌ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฆฌ๋ ๋ก๊ทธ์ ์ฆ๊ฐ ์๋๋ฅผ ๋ถ์ํด ์ ์ ํ ์์ค์ ๋ํฐ ํ์ด์ง๊ฐ ๋ฒํผํ์ ์ ์ง๋ ์ ์๋๋ก ๋์คํฌ ์ฐ๊ธฐ๋ฅผ ์คํํ๋ค.
innodb_adaptive_flushing_lwn
์ ๊ธฐ๋ณธ 10%์ด๋ฉฐ, ์ ์ฒด ๋ฆฌ๋ ๋ก๊ทธ ๊ณต๊ฐ์์ ํ์ฑ ๋ฆฌ๋ ๋ก๊ทธ ๊ณต๊ฐ์ด 10% ๋ฏธ๋ง์ด๋ฉด ์ด๋ํฐ๋ธ ํ๋ฌ์๊ฐ ์๋ํ์ง ์๋ค๊ฐ 10%๋ฅผ ๋์ด์๋ฉด ๊ทธ๋๋ถํฐ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ํ๋ค.
innodb_flush_neighbors
๋ ๋ํฐ ํ์ด์ง๋ฅผ ๋์คํฌ์ ๊ธฐ๋กํ ๋ ๋์คํฌ์์ ๊ทผ์ ํ ํ์ด์ง ์ค ๋ํฐํ์ด์ง๊ฐ ์๋ค๋ฉด, ํจ๊ป ๋ฌถ์ด์ ๊ธฐ๋กํ๊ฒ ํด์ฃผ๋ ๊ธฐ๋ฅ์ ํ์ฑํํ ์ง ๊ฒฐ์ ํ๋ค.
- ์๋ ํ๋๋์คํฌ์ ๊ฒฝ์ฐ IO๋ ๊ณ ๋น์ฉ ์์ ์ด๊ธฐ๋๋ฌธ์ ํ์๋ฅผ ์ค์ด๊ธฐ์ํด ๋ง์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์๋๋ฐ ์ ๊ธฐ๋ฅ์ด ๊ทธ๋ฌํ ๋ ธ๋ ฅ์ ๊ฒฐ๊ณผ๋ก ๋ณผ ์ ์๋ค.
- ๋ง์ฝ ํ๋๋์คํฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ํ์ฑํํ๋๊ฒ์ด ์ข์ง๋ง SSD๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ธ ๋นํ์ฑํ ๋ชจ๋๋ก ์ ์งํ๋ ๊ฒ์ด ์ข๋ค.
LRU๋ฆฌ์คํธ(LRU_list) ํ๋ฌ์ ํจ์ : LRU ๋ฆฌ์คํธ์์ ์ฌ์ฉ ๋น๋๊ฐ ๋ฎ์ ๋ฐ์ดํฐ ํ์ด์ง๋ค์ ์ ๊ฑฐํด์ ์๋ก์ด ํ์ด์ง๋ค์ ์ฝ์ด์ฌ ๊ณต๊ฐ์ ๋ง๋ค๋ ์ฌ์ฉ
- LRU๋ฆฌ์คํธ์ ๋๋ถ๋ถ๋ถํฐ ์์ํด ์ต๋
innodb_lru_scan_depth
์ ์ค์ ๋ ๋งํผ ํ์ด์ง๋ค์ ์ค์บํ๋ค. - ์ด ๋ ์ค์บํ๋ฉด์ ๋ํฐ ํ์ด์ง๋ ๋์คํฌ์ ๋๊ธฐํํ๊ฒ ํ๋ฉฐ, ํด๋ฆฐ ํ์ด์ง๋ ์ฆ์ ํ๋ฆฌ(Free)๋ฆฌ์คํธ๋ก ์ฎ๊ธด๋ค.
- ๋ฒํผํ ์ธ์คํด์ค๋ณ๋ก ์ต๋
innodb_lru_scan_depth
๊ฐ์๋งํผ ์ค์บํ๊ธฐ ๋๋ฌธ์ ์ค์ง์ ์ผ๋ก LRU ๋ฆฌ์คํธ์ ์ค์บ์innodb_buffer_pool_instance
*innodb_lru_scan_depth
๋งํผ ์ํํ๋ค.
๋ฒํผ ํ์ ์ฟผ๋ฆฌ๋ค์ด ์ฌ์ฉํ ๋ฐ์ดํฐ๊ฐ ์ค๋น๋์ด ๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ง ์์๋ ๋๋ ์ํ๋ฅผ ์๋ฐ์ (Warming Up)์ด๋ผ๊ณ ํํํ๋ค.
- ๋ฒํผํ ์๋ฐ์ ์ด๋ ์ํ์์๋ ๊ทธ๋ ์ง ์์ ์ํ๋ณด๋ค ๋ช์ญ ๋ฐฐ ์๋๊ฐ ๋น ๋ฅด๋ค.
- MySQL5.5: ySQL ์๋ฒ๋ฅผ ์ฌ์์ํ๋ ๊ฒฝ์ฐ ์๋น์ค ์คํ์ ๊ฐ์ ์๋ฐ์ ์ ์ํด ์ฃผ์ ํ ์ด๋ธ๊ณผ ์ธ๋ฑ์ค์ ๋ํด ํ์ค์บ์ ํ๋ฒ์ฉ ์คํํ๊ณ ์๋น์ค๋ฅผ ์คํํ์๋ค.
- MySQL5.6 ์ดํ: ๋ฒํผ ํ ๋คํ ๋ฐ ์ ์ฌ๊ธฐ๋ฅ ๋์
๋์ด
innodb_buffer_pool_dump_now
์์คํ ๋ณ์๋ฅผ ์ด์ฉํด ํ์ฌ ๋ฒํผํ ์ํ๋ฅผ ๋ฐฑ์ ํ ์ ์๋ค. - ๊ทธ๋ฆฌ๊ณ ๋ค์ ์์ํ๋ฉด
innodb_buffer_pool_load_now
๋ฅผ ์ด์ฉํ์ฌ ๋ฐฑ์ ๋ ๋ฒํผํ ์ํ๋ฅผ ๋ค์ ๋ณต๊ตฌํ ์ ์๋ค.
// ์๋ฒ ์
ง๋ค์ด ์ ๋ฒํผ ํ์ ์ํ ๋ฐฑ์
set GLOBAL innodb_buffer_pool_dump_now = ON;
// ์๋ฒ ์ฌ์์ ํ ๋ฐฑ์
๋ ๋ฒํผ ํ์ ์ํ ๋ณต๊ตฌ
set GLOBAL innodb_buffer_pool_load_now = ON;
๋ฒํผ ํ ๋ฐฑ์
๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ์ ib_buffer_pool
์ด๋ฆ์ผ๋ก ํ์ผ์ด ์์ฑ๋๋ค.
- ์ค์ ํฌ๊ธฐ๋ฅผ ๋ณด๋ฉด ์๋ฌด๋ฆฌ ๋ฒํผํ์ด ํฌ๋๋ผ๋ ๋ช์ญ MB ์ดํ๋ค.
- ์ด๋ ๋ฒํผํ์ LRU ๋ฆฌ์คํธ์์ ์ ์ฌ๋ ๋ฐ์ดํฐ ํ์ด์ง์ ๋ฉํ์ ๋ณด๋ง ๊ฐ์ ธ์์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ด๋ค.
ํ์ง๋ง ์ด๋ฅผ ๋ค์ ๋ฒํผํ๋ก ๋ณต๊ตฌํ๋ ๊ณผ์ ์ ๋ฒํผํ ํฌ๊ธฐ์ ๋ฐ๋ผ ์๋นํ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์๋ค.
- ์ด๋ ๋ฐฑ์ ๋ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ๋์คํฌ์์ ๊ฐ ํ ์ด๋ธ์ ๋ฐ์ดํฐ ํ์ด์ง๋ก ์ฝ์ด์์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.
- ๊ทธ๋์ ๋ณต๊ตฌํ๋ ๊ณผ์ ์ ์งํ ์ ๋๋ฅผ ํ์ธํ ์ ์๋ ์ํ๊ฐ์ ์ง์ํ๋ค.
show STATUS LIKE `innodb_buffer_pool_dump_status`
๋ง์ฝ ์ ์ฌ์์
์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ ค ์ค๊ฐ์ ๋ฉ์ถ๊ณ ์ ํ๋ค๋ฉด innodb_buffer_pool_load_abort
๋ฅผ ์ด์ฉํ๋ฉด๋๋ค.
- ๋ฒํผํ ๋ณต๊ตฌ๋ ์๋นํ ๋ง์ ๋์คํฌ ์ฝ๊ธฐ๋ฅผ ํ์๋ก ํ๊ธฐ ๋๋ฌธ์, ๋ณต๊ตฌ์ค์ธ ์ํ์์ ์๋น์ค๋ฅผ ์ฌ๊ฐํ๋ ๊ฒ์ ์ข์ง ์์ ์ ํ์ด๋ค.
- ๋ฐ๋ผ์ ๋ณต๊ตฌ ๋์ค์ ๊ธํ ์๋น์ค๋ฅผ ์ฌ์์ํด์ผํ๋ค๋ฉด ๋ณต๊ตฌ๋ฅผ ๋ฉ์ถ๊ฒ์ ๊ถ์ฅํ๋ค.
set GLOBAL innodb_buffer_pool_load_abort = ON;
์ ์์ ์ ์๋์ผ๋ก ํ๋๊ฒ์ ์ฌ์ค ์ฝ์ง์๋ค. ๋ฐ๋ผ์ MySQL ์๋ฒ๊ฐ ์ ง๋ค์ด ๋๊ธฐ ์ง์ ์ ๋ฒํผํ ๋ฐฑ์ ์ ์คํํ๊ณ ์๋ฒ๊ฐ ์์๋๋ฉด ๋ฒํผํ ๋ณต๊ตฌํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
- ์ค์ ๋ฐฉ๋ฒ์
innodb_buffer_pool_dump_at_shutdown
,innodb_buffer_pool_load_at_startup
์ค์ ์ MySQL ์๋ฒ ์ค์ ํ์ผ์ ๋ฃ์ด๋๋ฉด๋๋ค.
๋ฒํผํ ๋ฐฑ์ ํ์ผ์ด ๋ฐ๋์ ์ ง๋ค์ดํ๊ธฐ ์ง์ ์ ํ์ผ์ผ ํ์๋์๋ค.
ib_buffer_pool
ํ์ผ์์ ๋ฐ์ดํฐ ํ์ด์ง์ ๋ชฉ๋ก์ ๊ฐ์ ธ์ ์ค์ ์กด์ฌํ๋ ๋ฐ์ดํฐ ํ์ด์ง๋ง ๋ฒํผํ๋ก ์ ์ฌํ๊ธฐ๋๋ฌธ์ ๊ด์ฐฎ๋ค.
- MySQL 5.6๋ถํฐ
information_schema
๋ฐ์ดํฐ๋ฒ ์ด์ค์innodb_buffer_page
ํ ์ด๋ธ์ ์ด์ฉํด ๋ฒํผํ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ค ํ ์ด๋ธ์ ํ์ด์ง๋ค์ด ์ ์ฌ๋์ด์๋์ง ํ์ธํ ์ ์์๋ค. - ํ์ง๋ง ๋ฒํผํ์ด ํฐ ๊ฒฝ์ฐ ์๋นํ ๋ถํ๋ฅผ ์ผ์ผ์ผ ์๋น์ค ์ฟผ๋ฆฌ๊ฐ ๋๋ ค์ง๋ ๋ฌธ์ ๊ฐ ์์๊ณ , ์ค ์๋น์ค์ฉ MySQL์๋ฒ๋ ๋ฒํผํ ์ํ ํ์ธ์ด ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ๋ค.
- ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ํด
information_schema
๋ฐ์ดํฐ๋ฒ ์ด์ค์innodb_cached_indexes
ํ ์ด๋ธ์ด ์๋ก ์ถ๊ฐ๋๋ค. - ์ด๋ฅผ ์ด์ฉํ๋ฉด ํ ์ด๋ธ์ ์ธ๋ฑ์ค๋ณ ๋ฐ์ดํฐ ํ์ด์ง๊ฐ ์ผ๋ง๋ ๋ฒํผํ์ ์ ์ฌ๋์ด์๋์ง ํ์ธํ ์ ์๋ค.

- ์์ฉํ์ฌ ํ ์ด๋ธ ์ ์ฒด(์ธ๋ฑ์ค ํฌํจ)ํ์ด์ง ์ค ๋๋ต ์ด๋ ์ ๋ ๋น์จ์ด InnoDB ๋ฒํผ ํ์ ์ ์ฌ๋ผ ์๋์ง ๋ค์๊ณผ ๊ฐ์ด ํ์ธํด๋ณผ ์ ์๋ค.

๋ฆฌ๋๋ก๊ทธ๋ ๋ฆฌ๋๋ก๊ทธ ๊ณต๊ฐ์ ๋ญ๋น๋ฅผ ๋ง๊ธฐ์ํด ํ์ด์ง์ ๋ณ๊ฒฝ๋ ๋ด์ฉ๋ง ๊ธฐ๋กํ๋ค.
- ๋ฐ๋ผ์ ๋ํฐ ํ์ด์ง๋ฅผ ๋์คํฌ ํ์ผ๋ก ํ๋ฌ์ํ ๋ ์ผ๋ถ๋ง ๊ธฐ๋ก๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด, ๊ทธ ํ์ด์ง์ ๋ด์ฉ์ ๋ณต๊ตฌํ ์ ์์ ์๋ ์๋ค.
- ์ด๋ ๊ฒ ํ์ด์ง ์ผ๋ถ๋ง ๊ธฐ๋ ๋๋ ํ์์ ํ์ ํ์ด์ง(Partial page), ํค ํ์ด์ง(Torn page)๋ผ๊ณ ํ๋ค.
- ์ด๋ฐ ํ์์ ํ๋์จ์ด์ ์ค์๋์ด๋ ์์คํ ์ ๋น์ ์ ์ข ๋ฃ ๋ฑ์ผ๋ก ๋ฐ์ํ ์ ์๋ค.
์ ๋ฌธ์ ๋ฅผ ๋ง๊ธฐ์ํด Double-Write ๊ธฐ๋ฒ์ ์ด์ฉํ๋ค.
A ~ E๊น์ง ๋ํฐ ํ์ด์ง๋ฅผ ๋์คํฌ๋ก ํ๋ฌ์ํ๋ค๊ณ ๊ฐ์ ํด๋ณด์.
- ์คํ ๋ฆฌ์ง ์์ง์ ์ค์ ๋ฐ์ดํฐ ํ์ผ์ ๋ณ๊ฒฝ ๋ด์ฉ์ ๊ธฐ๋กํ๊ธฐ ์ ์, A ~ E๊น์ง ๋ํฐ ํ์ด์ง๋ฅผ ์ฐ์ ๋ฌถ์ด ํ๋ฒ์ ๋์คํฌ ์ฐ๊ธฐ๋ก Double-Wirte๋ฒํผ์ ๊ธฐ๋กํ๋ค.
- ๊ทธ๋ฆฌ๊ณ ์คํ ๋ฆฌ์ง ์์ง์ ๊ฐ ๋ํฐ ํ์ด์ง๋ฅผ ํ์ผ์ ์ ๋นํ ์์น์ ํ๋์ฉ ๋๋ค์ผ๋ก ์ฐ๊ธฐ๋ฅผ ์์ํ๋ค.
์ด๋ ๊ฒ Double Write๋ฒํผ ๊ณต๊ฐ์ ๊ธฐ๋ก๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ์ค์ ๋ฐ์ดํฐ ํ์ผ์ ์ ์์ ์ผ๋ก ๊ธฐ๋ก๋๋ฉด ๋์ด์ ํ์๊ฐ ์์ด์ง๋ค.
- Double Write๋ฒํผ์ ๋ด์ฉ์ ์ค์ ๋ฐ์ดํฐ ํ์ผ์ ์ฐ๊ธฐ๊ฐ ์ค๊ฐ์ ์คํจํ ๋ ์๋์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
- ๋ง์ฝ ํ์ด์ง ๊ธฐ๋ก์ค OS๊ฐ ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋๋ฉด, ์คํ ๋ฆฌ์ง ์์ง์ ์ฌ์์๋ ๋ Double Write๋ฒํผ์ ๋ด์ฉ๊ณผ ๋ฐ์ดํฐ ํ์ผ์ ํ์ด์ง๋ค์ ๋น๊ตํ๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ๋ด์ฉ์ ๋ด๊ณ ์๋ ํ์ด์ง๊ฐ ์์ผ๋ฉด, Double Write ๋ฒํผ์์ ๋ฐ์ดํฐ ํ์ผ์ ํ์ด์ง๋ก ๋ณต์ฌํ๋ค.
- ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉ์ฌ๋ถ๋
innodb_doublewrite
๋ก ์ ์ดํ ์ ์๋ค.
Double Wirte๋ HDD์ฒ๋ผ ์๊ธฐ ์ํ์ด ํ์ ํ๋ ์ ์ฅ์์คํ ์์๋ ํ๋ฒ์ ์์ฐจ ๋์คํฌ ์ฐ๊ธฐ๋ฅผ ํ๊ธฐ๋๋ฌธ์ ๋ถ๋ด๋์ง ์์ง๋ง, SDD๊ฐ์ด ๋๋คIO๋ ์์ฐจIO์ ๋น์ฉ์ด ๋น์ทํ ์ ์ฅ์์คํ ์์๋ ๋ถ๋ด์ค๋ฝ๋ค.
- ํ์ง๋ง ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ด ๋งค์ฐ ์ค์ํ ์๋น์ค์์๋ Double Wirte ํ์ฑํ๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ข๋ค.
- ๋ง์ฝ DB ์๋ฒ์ฑ๋ฅ์ ์ํด InnoDB ๋ฆฌ๋ ๋ก๊ทธ ๋๊ธฐํ ์ค์ (
innodb_flush_log_at_trx_commit
)์ ๊บผ๋จ๋ค๋ฉด Double Write๋ ๋นํ์ฑํํ๋ ๊ฒ์ด ์ข๋ค.
์ผ๋ฐ์ ์ผ๋ก MySQL ์๋ฒ๋ ๋ณต์ ๋ฅผ ์ด์ฉํด ์ฌ๋ฌ๊ฐ ์ฌ๋ณธ์ ์ ์งํ๊ธฐ๋๋ฌธ์ ๋น์ ์ ์ข ๋ฃ๊ฐ ๋๋ฉด ๋ฐฑ์ ๊ณผ ๋ฐ์ด๋๋ฆฌ ๋ก๊ทธ๋ฅผ ์ด์ฉํด ๋๊ธฐํํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
๋ง์ฝ ๋ฌด๊ฒฐ์ฑ์ด ๋ฏผ๊ฐํ ์๋น์ค๋ผ๋ฉด ๋ฆฌ๋๋ก๊ทธ์ ๋ฐ์ด๋๋ฆฌ ๋ก๊ทธ ๋ฑ ํธ๋์ญ์ ์ Commitํ๋ ์์ ์ ๋๊ธฐํํ ๊ฒ๋ค์ด ๋ง๋ค๋ ์ ์ ์ฃผ์ํ์.
์ฆ, ๋ฆฌ๋๋ก๊ทธ๋ ๋๊ธฐํํ์ง ์์ผ๋ฉด์(innodb_flush_log_at_trx_commit
1์ด ์๋ ๊ฒฝ์ฐ) DoubleWrite๋ง ํ์ฑํํ๋ค๋๊ฒ์ ์๋ชป๋ ์ ํ์ด๋ค.
InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ํธ๋์ญ์ ๊ณผ ๊ฒฉ๋ฆฌ์์ค์ ๋ณด์ฅํ๊ธฐ์ํด DML๋ก ๋ณ๊ฒฝ๋๊ธฐ ์ด์ ๋ฒ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋๋ก ๋ฐฑ์ ํ๋ค. โก ์ธ๋๋ก๊ทธ(Undo Log)
- ํธ๋์ญ์
๋ณด์ฅ
- ํธ๋์ญ์ ์ด ๋กค๋ฐฑ๋๋ฉด ํธ๋์ญ์ ๋์ค ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ์ด์ ์ผ๋ก ๋ณ๊ฒฝํด์ผํ๋๋ฐ, ์ด๋ ์ธ๋๋ก๊ทธ์ ๋ฐฑ์ ํด๋ ์ด์ ๋ฒ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ๋ณต๊ตฌํ๋ค.
- ๊ฒฉ๋ฆฌ ์์ค ๋ณด์ฅ
- ํน์ ์ปค๋ฅ์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๋์ค ๋ค๋ฅธ ์ปค๋ฅ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ฉด, ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค์ ๋ง๊ฒ ๋ณ๊ฒฝ์ค์ธ ๋ ์ฝ๋๋ฅผ ์ฝ์ง ์๊ณ ์ธ๋ ๋ก๊ทธ์ ๋ฐฑ์ ํด๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ ๋ฐํํ๊ธฐ๋ ํ๋ค.
์ธ๋๋ก๊ทธ๋ ์ค์ํ ์ญํ ์ ๋ด๋นํ์ง๋ง, ๊ด๋ฆฌ ๋น์ฉ๋ ๋ง์ด ํ์ํ๋ค.
DML ์ฟผ๋ฆฌ๊ฐ ์คํ๋๋ฉด, ํธ๋์ญ์ ์ ์ปค๋ฐํ์ง ์์๋ ์ค๋ฐ ๋ฐ์ดํฐ ํ์ผ(๋ฐ์ดํฐ/์ธ๋ฑ์ค ๋ฒํผ)๋ด์ฉ์ ๋ณ๊ฒฝ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋ณ๊ฒฝ๋๊ธฐ ์ ๋ฐ์ดํฐ๋ ์ธ๋์์ญ์ ๋ฐฑ์ ๋๋ค.
- ์ด ์ํ์์ ์ฌ์ฉ์๊ฐ ์ปค๋ฐํ๋ฉด, ํ์ฌ ์ํ๊ฐ ์ ์ง๋๊ณ ๋กค๋ฐฑํ๋ฉด ์ธ์ฐ ์์ฝ์ ๋ฐ์ดํฐ๊ฐ ๋ณต๊ตฌ๋๋ค.
- ํธ๋์ญ์ ๋กค๋ฐฑ ๋๋น์ฉ
- ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค์ ์ ์งํ๋ฉด์, ๋์ ๋์์ฑ์ ์ ๊ณต
ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค: ๋์์ ์ฌ๋ฌ ํธ๋์ญ์ ์ด ๋ฐ์ดํฐ ๋ณ๊ฒฝ/์กฐํ ์ ํ ํธ๋์ญ์ ์ ์์ ๋ด์ฉ์ด ๋ค๋ฅธ ํธ๋์ญ์ ์ ์ด๋ป๊ฒ ๋ณด์ผ์ง ๊ฒฐ์ ํ๋ ๊ธฐ์ค
5.4.3์
- ํ๋ฒ ์ฆ๊ฐํ ์ธ๋๋ก๊ทธ ๊ณต๊ฐ์ ๋ค์ ์ค์ด๋ค์ง ์๋๋ค.
- 100GB ํ ์ด๋ธ์ DELETE๋ก ์ญ์ ํ๋ฉด ์ธ๋๋ก๊ทธ๋ ํ ์ด๋ธ ํฌ๊ธฐ๋งํผ ์ธ๋๋ก๊ทธ์ ๋ณต์ฌํ๋ฉฐ ๊ณต๊ฐ ์ฌ์ฉ๋์ด ๋์ด๋๋ค.
- ํธ๋์ญ์ ์ด ์ค๋ ์๊ฐ ์คํ๋ ๊ฒฝ์ฐ ์ธ๋๋ก๊ทธ์์ ๊ธ๊ฒฉํ ์ฆ๊ฐํ๋ค.
- ํธ๋์ญ์ ์ด ์๋ฃ๋๋คํด์ ํด๋น ํธ๋์ญ์ ์ด ์์ฑํ ์ธ๋๋ก๊ทธ๋ฅผ ์ฆ์ ์ญ์ ํ ์ ์๋๊ฒ์ ์๋๋ค.
- ๋ง์ฝ A->B->C ์์๋๋ก ํธ๋์ญ์ ์ด ์์๋์๊ณ B์ C์ ํธ๋์ญ์ ์ ์๋ฃ๋์์ง๋ง A๋ ์์ง ํ์ฑํญํ์ผ ๊ฒฝ์ฐ
- B, C ํธ๋์ญ์ ์๋ฃ ์ฌ๋ถ์ ์๊ด์์ด B, C ํธ๋์ญ์ ์ด ๋ง๋ ์ธ๋๋ก๊ทธ๋ ์ญ์ ๋์ง ์๋๋ค.
๋ง์ฝ ์ฌ์ฉ์๊ฐ ํธ๋์ญ์
์ ์์ํ ์ํ์์ ์๋ฃํ์ง ์๊ณ ํ๋ฃจ์ ๋ ๋ฐฉ์นํ๋ค๋ฉด, ํธ๋์ญ์
์์ ์์ ๋ถํฐ ๊ณ์ ์ธ๋๋ก๊ทธ๋ฅผ ๋ณด์กดํ ๊ฒ์ด๋ค.
๋์คํฌ ์ฌ์ฉ๋์ด ์ฆ๊ฐํ๋๊ฒ์ ํฐ๋ฌธ์ ๊ฐ ์๋ ์ ์์ง๋ง, ๊ทธ๋์ ๋น๋ฒํ๊ฒ ๋ณ๊ฒฝ๋ ๋ ์ฝ๋๋ฅผ ์กฐํํ๋ ์ฟผ๋ฆฌ๊ฐ ์คํ๋๋ฉด ์ธ๋ ๋ก๊ทธ์ ์ด๋ ฅ์ ํ์ํ ๋งํผ ์ค์บํด์ผ ๋ ์ฝ๋๋ฅผ ์ฐพ์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ด ๋จ์ด์ง๊ฒ๋๋ค.
์ธ๋๋ก๊ทธ๋ฅผ ๋์๊ฐ๋ฉด์ ์์ฐจ์ ์ผ๋ก ์ฌ์ฉํด ๋์คํฌ ๊ณต๊ฐ์ ์ค์ด๋๊ฒ ๊ฐ๋ฅํด์ก๋ค. ๋๋ก๋ MySQL ์๋ฒ๊ฐ ํ์ํ ์์ ์ ์ฌ์ฉ ๊ณต๊ฐ์ ์๋์ผ๋ก ์ค์ฌ ์ฃผ๊ธฐ๋ ํ๋ค.
ํ์ง๋ง ์ฌ์ ํ ํธ๋์ญ์ ์ด ์ฅ์๊ฐ ํ์ฑํ ๋๋๊ฒ์ ์ฑ๋ฅ์ ์ข์ง ์๋ค. ๊ทธ๋์ ์ธ๋๋ก๊ทธ ๋ ์ฝ๋๊ฐ ์ผ๋ง๋ ๋๋์ง ํญ์ ๋ชจ๋ํฐ๋งํ๋ ๊ฒ์ด ์ข๋ค.
// MySQL ์๋ฒ์ ๋ชจ๋ ๋ฒ์ ์์ ์ฌ์ฉ ๊ฐ๋ฅ
show ENGINE INNODB STAUS \G
// 8.0 ๋ฒ์ ์์๋ง ์ฌ์ฉ๊ฐ๋ฅํ ๋ช
๋ น
select count
from information_schema.innodb_metrics
where subsystem='transaction' and name='trx_rseg_history_len';
- MySQL 5.6 ์ด์ : ์ธ๋๋ก๊ทธ๊ฐ ๋ชจ๋ ์์คํ ํ ์ด๋ธ ์คํ์ด์ค(ibdata.ibd)์ ์ ์ฅ๋จ. ํ์ง๋ง ์ด๋ ์๋ฒ๊ฐ ์ด๊ธฐํ๋ ๋ ์์ฑ๋๊ธฐ ๋๋ฌธ์ ํ์ฅ์ ํ๊ณ๊ฐ ์์๋ค.
- MySQL 5.6 ์ดํ:
innodb_undo_tablespaces
์์คํ ๋ณ์๊ฐ ๋ฑ์ฅํ๊ณ ์ด๋ฅผ 2๋ณด๋ค ํฐ๊ฐ์ ์ค์ ํ๋ฉด ๋์ด์ ์ธ๋๋ก๊ทธ๋ฅผ ์์คํ ํ ์ด๋ธ ์คํ์ด์ค์ ์ ์ฅํ์ง ์๊ณ ๋ณ๋์ ์ธ๋๋ก๊ทธ ํ์ผ์ ์ฌ์ฉํ๋ค.- ํ์ง๋ง 0์ผ๋ก ์ค์ ํ๋ฉด ์ฌ์ ํ ์์คํ ํ ์ด๋ธ ์คํ์ด์ค์ ์ ์ฅํจ.
- MySQL 8.0:
innodb_undo_tablespaces
์์คํ ๋ณ์๋ Deprecated๋์์ผ๋ฉฐ, ์ธ๋๋ก๊ทธ๋ ์์คํ ํ ์ด๋ธ์คํ์ด์ค ์ธ๋ถ ๋ณ๋ ๋ก๊ทธ ํ์ผ์ ๊ธฐ๋ก๋๋๋ก ๊ฐ์ ๋์๋ค.

- ํ๋์ ์ธ๋ ํ ์ด๋ธ์คํ์ด์ค๋ 1~128๊ฐ์ ๋กค๋ฐฑ ์ธ๊ทธ๋จผํธ๋ฅผ ๊ฐ์ง๋ฉฐ, ๋กค๋ฐฑ ์ธ๊ทธ๋จผํธ๋ 1๊ฐ ์ด์์ ์ธ๋ ์ฌ๋กฏ(Undo Slot)์ ๊ฐ์ง๋ค.
- ํ๋์ ๋กค๋ฐฑ ์ธ๊ทธ๋จผํธ๋ InnoDB์ ํ์ด์ง ํฌ๊ธฐ๋ฅผ 16byte๋ก ๋๋ ๊ฐ์ ๊ฐ์๋งํผ ์ธ๋ ์ฌ๋กฏ์ ๊ฐ์ง๋ค.
- ํ๋์ ํธ๋์ญ์ ์ด ํ์๋กํ๋ ์ธ๋ ์ฌ๋กฏ์ ๊ฐ์๋ insert, update, delete ๋ฌธ์ฅ ํน์ฑ์ ๋ฐ๋ผ ์ต๋ 4๊ฐ๊น์ง ์ธ๋์ฌ๋กฏ์ ์ฌ์ฉํ๋ค.
- ์ผ๋ฐ์ ์ผ๋ก๋ ์์ํ ์ด๋ธ์ ์ฌ์ฉํ์ง ์์ผ๋ฏ๋ก ํ๋์ ํธ๋์ญ์ ์ ๋๋ฝ 2๊ฐ๋ฅผ ํ์๋กํ๋ค๊ณ ๊ฐ์ ํ๋ฉด๋๋ค.
- ๊ทธ๋์ ์ต๋ ๋์ ์ฒ๋ฆฌ ๊ฐ๋ฅํ ํธ๋์ญ์ ๊ฐ์๋ ์๋ ์์ผ๋ก ์์ธกํด๋ณผ ์ ์๋ค.
์ต๋ ๋์ ํธ๋์ญ์
์ = (InnoDB ํ์ด์ง ํฌ๊ธฐ) / 16 * (๋กค๋ฐฑ ์ธ๊ทธ๋จผํธ ๊ฐ์) * (์ธ๋ ํ
์ด๋ธ์คํ์ด์ค ๊ฐ์)
16KB InnoDB์ ๊ธฐ๋ณธ ์ค์ (innodb_undo_tablespaces
=2, innodb_rollback_segent
=128), ์ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํ๋ฉด ๋๋ต 131072๊ฐ ์ ๋์ ํธ๋์ญ์
์ด ๋์์ ์ฒ๋ฆฌ ๊ฐ๋ฅํด์ง๋ค.
- 16 * 1024 / 16 * 128 * 2 / 2 = 131072
- ๋ฌผ๋ก ์ผ๋ฐ ์๋น์ค๊ฐ ์ด์ ๋๊น์ง ๋์ ํธ๋์ญ์ ์ด ํ์ํ์ง ์์ง๋ง, ๊ธฐ๋ณธ๊ฐ์ผ๋ก ํด์ ํฌ๊ฒ ๋ฌธ์ ๋ ๊ฑด ์์ผ๋ฏ๋ก ๊ฐ๋ฅํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ ์ ์งํ์.
์ธ๋๋ก๊ทธ๊ณต๊ฐ์ด ๋จ๋๊ฑด ๋ฌธ์ ๋์ง ์์ง๋ง, ์ธ๋ ๋ก๊ทธ ์ฌ๋กฏ์ด ๋ถ์กฑํ ๊ฒฝ์ฐ ํธ๋์ญ์ ์ ์์ํ ์ ์๋ ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
- ์ธ๋๋ก๊ทธ ๊ด๋ จ ์์คํ ๋ณ์๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ค๋ฉด ์ ์ ํ ํ์ํ ๋์ ํธ๋์ญ์ ๊ฐ์์ ๋ง๊ฒ ์ธ๋ ํ ์ด๋ธ ์คํ์ด์ค์ ๋กค๋ฐฑ ์ธ๊ทธ๋จผํธ์ ๊ฐ์๋ฅผ ์ค์ ํด์ผํ๋ค.
MySQL 8.0์ด์ ๊น์ง๋ ํ๋ฒ ์์ฑ๋ ์ธ๋๋ก๊ทธ ๋ณ๊ฒฝ์ด ํ์ฉ๋์ง ์์์ง๋ง 8.0๋ถํฐ๋ CREATE UNDO TABLESPACE, DROP TABLESPACE ๋ช
๋ น์ด๋ก ์ธ๋ํ
์ด๋ธ ์ถ๊ฐ/์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค.
์ธ๋ ํ
์ด๋ธ์คํ์ด์ค ๊ณต๊ฐ์ด ๊ณผ๋ํ๊ฒ ํ ๋น๋์ด ์ด๋ฅผ ๋ฐ๋ฉํ๋๊ฒ์ Undo tablespace truncate
๋ผ๊ณ ํ๋ค.
์ธ๋ ํ
์ด๋ธ์คํ์ด์ค์ ๋ถํ์ํ ๊ณต๊ฐ์ ์๋ผ๋ด๋ ๋ฐฉ๋ฒ์ด ์์ผ๋ฉฐ, ๋๊ฐ์ง ๋ชจ๋ 8.0๋ถํฐ ์ง์๋๋ค.
์๋ ๋ชจ๋: InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ํผ์ง ์ค๋ ๋(Purge Thread)๋ ์ฃผ๊ธฐ์ ์ผ๋ก ๊นจ์ด๋ ์ธ๋ ๋ก๊ทธ์์ ๋ถํ์ํด์ง ์ธ๋ ๋ก๊ทธ๋ฅผ ์ญ์ ํ๋ ์์ ์ ์คํํ๋ค.
innodb_undo_log_truncate
๊ฐ on์ผ๋ก ์ค์ ๋๋ฉด ํผ์ ์ค๋ ๋๋ ์ฃผ๊ธฐ์ ์ผ๋ก ๋์ํ๊ณ ์ฌ์ฉํ์ง ์๋ ๊ณต๊ฐ์ OS๋ก ๋ฐ๋ฉํ๋ค.- ๋ ๋น๋ฒํ๊ฒ ์คํํ๋ ค๋ฉด
innodb_purge_rseg_truncate_frequency
๋ณ์๊ฐ์ ์กฐ์ ํ๋ฉด๋๋ค.
์๋๋ชจ๋: innodb_undo_log_truncate
๊ฐ off๋ก ์ค์ ๋์ด ์ธ๋๋ก๊ทธํ์ผ ์๋ผ๋ด๊ธฐ๊ฐ ์๋์ผ๋ก ์คํ๋์ง ์๊ฑฐ๋
- ์์๋ณด๋ค ์๋๋ชจ๋์ฌ๋ ๊ณต๊ฐ ๋ฐ๋ฉ์ด ๋ถ์งํ๊ฒฝ์ฐ, ์ธ๋ํ ์ด๋ธ์คํ์ด์ค๋ฅผ ๋นํ์ฑํํ๋ฉด ํผ์ง์ค๋ ๋๋ ๋นํ์ฑ ์ํ์ ์ธ๋ํ ์ด๋ธ ์คํ์ด์ค๋ฅผ ์ฐพ์ ๋ถํ์ํ ๊ณต๊ฐ์ ์๋ผ๋ด๋ OS๋ก ํด๋น ๊ณค๊ฐ์ ๋ฐ๋ฉํ๋ค.
- ๋ฐ๋ฉ์ด ์๋ฃ๋๋ฉด ์ธ๋ํ ์ด๋ธ์คํ์ด์ค๋ฅผ ๋ค์ ํ์ฑํํ๋ค.
- ์๋๋ชจ๋๋ ์ธ๋ํ ์ด๋ธ์คํ์ด์ค๊ฐ ์ต์ 3๊ฐ ์ด์์๋ผ์ผ ์๋ํ๋ค.
// ์ธ๋ ํ
์ด๋ธ์คํ์ด์ค ๋นํ์ฑํ
alter undo tablespace tablespace_name set inactive;
// ํผ์ง ์ค๋ ๋์ ์ํด ์ธ๋ ํ
์ด๋ธ์คํ์ด์ค ๊ณต๊ฐ์ด ๋ฐ๋ฉ๋๋ฉด ๋ค์ ํ์ฑํ
alter undo tablespace tablespace_name set active;
RDBMS์์๋ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ์์ ๋ฟ ์๋๋ผ, ํ ์ด๋ธ์ ํฌํจ๋ ์ธ๋ฑ์ค๋ฅผ ์ ๋ฐ์ดํธ ํ๋ ์์ ๋ ํ์ํ๋ค.
- ๊ทธ๋ฐ๋ฐ ์ธ๋ฑ์ค๋ฅผ ์ ๋ฐ์ดํธํ๋ ์์ ์ ๋๋คํ๊ฒ ๋์คํฌ๋ฅผ ์ฝ๋ ์์ ์ด ํ์ํ๋ฏ๋ก, ์ธ๋ฑ์ค๊ฐ ๋ง๋ค๋ฉด ๋ง์ ์์์ ์๋ชจํ๋ค.
- ๋ฐ๋ผ์ ๋ณ๊ฒฝํด์ผํ ์ธ๋ฑ์ค ํ์ด์ง๊ฐ ๋ฒํผํ์ ์์ผ๋ฉด ๋ฐ๋ก ์ ๋ฐ์ดํธ๋ฅผ ์ํํ์ง๋ง, ๋์คํฌ๋ก ๋ถํฐ ์ฝ์ด์์ผํ๋ค๋ฉด ์ฆ์ ์คํํ์ง ์๊ณ ์์ ๊ณต๊ฐ์ ์ ์ฅํด๋ ํ ์ฌ์ฉ์์๊ฒ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ํํ๋ก ์ฑ๋ฅ์ ํฅ์์ํจ๋ค.
- ์ด๋ ์ฌ์ฉํ๋ ์์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฒด์ธ์ง ๋ฒํผ(Change Buffer)๋ผ๊ณ ํ๋ค.
์ฌ์ฉ์์๊ฒ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฌํ๊ธฐ ์ , ๋ฐ๋์ ์ค๋ณต ์ฌ๋ถ๋ฅผ ์ฒดํฌํด์ผ ํ๋ ์ ๋ํฌ ์ธ๋ฑ์ค๋ ์ฒด์ธ์ง ๋ฒํผ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
์ฒด์ธ์ง ๋ฒํผ์ ์์๋ก ์ ์ฅ๋ ์ธ๋ฑ์ค ๋ ์ฝ๋ ์กฐ๊ฐ์ ์ดํ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋์ ์ํด ๋ณํฉ๋๋ค. โก ๋จธ์ง ์ค๋ ๋
- MySQL5.5 ์ด์ : Insert์์ ์ ๋ํด์๋ง ๋ฒํผ๋ง ๊ฐ๋ฅ. ์์คํ ๋ณ์ ์ค์ x
- MySQL5.5 ์ดํ:
innodb_change_buffering
์์คํ ๋ณ์๋ก ์ฒด์ธ์ง ๋ฒํผ ํ์ฑ/๋นํ์ฑํ ๊ฐ๋ฅ - MySQL8.0: Insert, Delete, Update์์ ๋ ๋ฒํผ๋ง ๊ฐ๋ฅ.
innodb_change_buffering
- all: ๋ชจ๋ ์ธ๋ฑ์ค ๊ด๋ จ ์์ (inserts + deletes + purges) ๋ฒํผ๋ง
- none: ๋ฒํผ๋ง ์ํจ
- insert: ์ธ๋ฑ์ค์ ์๋ก์ด ์์ดํ ์ถ๊ฐ๋ง ๋ฒํผ๋ง
- deletes: ์ธ๋ฑ์ค์ ๊ธฐ์กด ์์ดํ ์ญ์ (์ญ์ ๋๋ค๋ ๋งํน)๋ง ๋ฒํผ๋ง
- changes: ์ถ๊ฐ/์ญ์ ๋ง ๋ฒํผ๋ง
- purges: ์ธ๋ฑ์ค์ ์์ดํ ์๊ตฌ ์ญ์ ๋ง ๋ฒํผ๋ง(๋ฐฑ๊ทธ๋ผ์ด๋ ์์ )
์ฒด์ธ์ง ๋ฒํผ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฒํผํ๋ก ์ค์ ๋ ๋ฉ๋ชจ๋ฆฌ์ 25%๊น์ง๋ง ์ฌ์ฉํ ์ ์๋ค.
- ํ์ํ๋ค๋ฉด 50%๊น์ง ์ฌ์ฉํ๊ฒ ์ค์ ํ ์ ์๋ค.
- ์ฒด์ธ์ง ๋ฒํผ๋ฅผ ์ค์ด๊ฑฐ๋ ๋๋ฆฌ๊ณ ์ถ๋ค๋ฉด
innodb_change_buffer_max_size
์์คํ ๋ณ์์ ๋น์จ์ ์ค์ ํ๋ฉด ๋๋ค.
์ฒด์ธ์ง ๋ฒํผ๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ผ๋ง๋ ์ฌ์ฉ์ค์ธ์ง, ์ผ๋ง๋ ๋ง์ ๋ณ๊ฒฝ์ฌํญ์ ๋ฒํผ๋งํ๊ณ ์๋์ง๋ ๋ค์๊ณผ ๊ฐ์ด ํ์ธํ ์ ์๋ค.
// ์ฒด์ธ์ง ๋ฒํผ๊ฐ ์ฌ์ฉ์ค์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ํฌ๊ธฐ
select event_name, current_number_of_btyes_used
from performance_schema.memory_summary_global_by_event_name
where event_name='memory/innodb/ibuf01buf';
// ์ฒด์ธ์ง ๋ฒํผ ๊ด๋ จ ์คํผ๋ ์ด์
์ฒ๋ฆฌ ํ์
show engine innodb status \G
๋ฆฌ๋ ๋ก๊ทธ๋ ํธ๋์ญ์ ์ 4๊ฐ์ง ์์์ธ ACID์ D(Durable)์ ํด๋นํ๋ ์์์ฑ๊ณผ ๊ฐ์ฅ ๋ฐ์ ํ๊ฒ ์ฐ๊ด๋์ด์๋ค.
- ๋ฆฌ๋ ๋ก๊ทธ๋ ํ๋์จ์ด๋ ์ํํธ์จ์ด ๋ฑ ๋ฌธ์ ๋ก ์ธํด MySQL์๋ฒ๊ฐ ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋์ ๋ ๋ฐ์ดํฐ ํ์ผ์ ๊ธฐ๋ก๋์ง ๋ชปํ ๋ฐ์ดํฐ๋ฅผ ์์ง ์๊ฒ ํด์ฃผ๋๊ฒ ์์ ์ฅ์น๋ค.
MySQL์๋ฒ๋ฅผ ํฌํจํ ๋๋ถ๋ถ DB์๋ฒ๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ก๊ทธ๋ก ๋จผ์ ๊ธฐ๋กํ๋ค.
- ๊ฑฐ์ ๋ชจ๋ DBMS์์ ๋ฐ์ดํฐ ํ์ผ์ ์ฐ๊ธฐ๋ณด๋ค ์ฝ๊ธฐ ์ฑ๋ฅ์ ๊ณ ๋ คํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ํ์ผ ์ฐ๊ธฐ๋ ๋์คํฌ์ ๋๋ค ์ก์ธ์ค๊ฐ ํ์ํ๋ค. (์๋์ ์ผ๋ก ํฐ ๋น์ฉ์ด ํ์)
- ์ด๋ก ์ธํ ์ฑ๋ฅ ์ ํ๋ฅผ ๋ง๊ธฐ ์ํด DB ์๋ฒ๋ ์ฐ๊ธฐ ๋น์ฉ์ด ๋ฎ์ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ๋ฆฌ๋ ๋ก๊ทธ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๋น์ ์ ์ข ๋ฃ๊ฐ ๋ฐ์ํ๋ฉด ๋ฆฌ๋ ๋ก๊ทธ์ ๋ด์ฉ์ ์ด์ฉํด ๋ฐ์ดํฐ ํ์ผ์ ๋ค์ ์๋ฒ๊ฐ ์ข ๋ฃ๋๊ธฐ ์ง์ ์ ์ํ๋ก ๋ถ๊ตฌํ๋ค.
- ์ฑ๋ฅ์ ์ํด ๋ฆฌ๋ ๋ก๊ทธ๋ฅผ ๋ฒํผ๋งํ ์ ์๋ ๋ก๊ทธ๋ฒํผ์ ๊ฐ์ ์๋ฃ๊ตฌ์กฐ๋ ๊ฐ์ง๊ณ ์๋ค.
MySQL์๋ฒ๊ฐ ๋น์ ์ ์ข ๋ฃ๋๋ ๊ฒฝ์ฐ InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ๋ฐ์ดํฐ ํ์ผ์ ์ผ๊ด์ฑ์ด ๊นจ์ง ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ์ ์๋ค.
- ์ปค๋ฐ๋์ง๋ง ๋ฐ์ดํฐ ํ์ผ์ ๊ธฐ๋ก๋์ง ์์ ๋ฐ์ดํฐ
- ๋กค๋ฐฑ๋์ง๋ง ๋ฐ์ดํฐ ํ์ผ์ ์ด๋ฏธ ๊ธฐ๋ก๋ ๋ฐ์ดํฐ
1๋ฒ์ ๊ฒฝ์ฐ ๋ฆฌ๋ ๋ก๊ทธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๋ฉด๋๋ค. ํ์ง๋ง 2๋ฒ์ ๋ฆฌ๋ ๋ก๊ทธ๋ก ํด๊ฒฐํ ์ ์๋ค.
- ์ด๋ ๋ณ๊ฒฝ๋์ง ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ์ธ๋ ๋ก๊ทธ์ ๋ด์ฉ์ ๊ฐ์ ธ์ ๋ฐ์ดํฐ ํ์ผ์ ๋ณต์ฌํ๋ฉด๋๋ค.
- ๊ทธ๋ ๋ค๊ณ ๋ฆฌ๋๋ก๊ทธ๊ฐ ์ ํ ํ์ํ์ง ์์ ๊ฒ์ ์๋๋ค. ์ต์ํ ๊ทธ ๋ณ๊ฒฝ์ด ์ปค๋ฐ/๋กค๋ฐฑ/ํธ๋์ญ์ ์ค๊ฐ ์ํ์๋์ง๋ฅผ ํ์ธํ๊ธฐ ์ํด์๋ผ๋ ํ์ํ๋ค.
๋ฆฌ๋ ๋ก๊ทธ๋ ํธ๋์ญ์ ์ด ์ปค๋ฐ๋๋ฉด ์ฆ์ ๋์คํฌ๋ก ๊ธฐ๋ก๋๋๋ก ์ค์ ํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
- ๊ทธ๋์ผ ์๋ฒ๊ฐ ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋์ ๋ ์ง์ ๊น์ง์ ํธ๋์ญ์ ์ปค๋ฐ ๋ด์ฉ์ด ๋ฆฌ๋ ๋ก๊ทธ์ ๊ธฐ๋ก๋ ์ ์๊ณ , ๋ฆฌ๋ ๋ก๊ทธ๋ฅผ ์ด์ฉํด ์ฅ์ ์ง์ ์์ ๊น์ง ๋ณต๊ตฌ๊ฐ ๊ฐ๋ฅํด์ง๋ค.
- ํ์ง๋ง ์ปค๋ฐ๋ ๋๋ง๋ค ๋ฆฌ๋๋ก๊ทธ๋ฅผ ๋์คํฌ์ ๊ธฐ๋กํ๋ ์์ ์ ๋ง์ ๋ถํ๋ฅผ ์ ๋ฐํ๋ค.
- ๊ทธ๋์ ๋ฆฌ๋๋ก๊ทธ๋ฅผ ์ด๋ ์ฃผ๊ธฐ๋ก ๋๊ธฐํํ ์ง ๊ฒฐ์ ํ๋
innodb_flush_log_at_trx_commit
์์คํ ๋ณ์๋ฅผ ์ ๊ณตํ๋ค.
innodb_flush_log_at_trx_commit
- 0: 1์ด์ ํ๋ฒ์ฉ ๋์คํฌ๋ก ๊ธฐ๋กํ๊ณ ๋๊ธฐํ. ๋ง์ฝ ์๋ฒ๊ฐ ๋น์ ์ ์ข ๋ฃ๋๋ฉด, ์ต๋ 1์ด ๋์์ ํธ๋์ญ์ ์ ์ปค๋ฐ๋๋ค๊ณ ํ๋๋ผ๋ ํด๋น ํธ๋์ญ์ ์์ ๋ณ๊ฒฝํ ๋ฐ์ดํฐ๋ ์ฌ๋ผ์ง ์ ์๋ค.
- 1: ๋งค๋ฒ ํธ๋์ญ์ ์ปค๋ฐ ์ ๋์คํฌ๋ก ๊ธฐ๋กํ๊ณ ๋๊ธฐํ. ์ปค๋ฐ๋๋ฉด ํด๋น ํธ๋์ญ์ ์์ ๋ณ๊ฒฝํ ๋ฐ์ดํฐ๋ ์ฌ๋ผ์ง๋ค.
- 2: ๋งค๋ฒ ํธ๋์ญ์
์ปค๋ฐ ์ ๋์คํฌ๋ก ๊ธฐ๋ก๋์ง๋ง, 1์ด์ ํ๋ฒ์ฉ ๋๊ธฐํ. ํธ๋์ญ์
์ด ์ปค๋ฐ๋๋ฉด ๋ณ๊ฒฝ ๋ด์ฉ์ด ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ๋ก ๊ธฐ๋ก๋๋ ๊ฒ์ ๋ณด์ฅํ๋ค.
- ๊ทธ๋์ ์๋ฒ๊ฐ ๋น์ ์ ์ข ๋ฃ๋๋๋ผ๋ OS๊ฐ ์ ์ ์๋ํ๋ค๋ฉด ํด๋น ํธ๋์ญ์ ๋ฐ์ดํฐ๋ ์ฌ๋ผ์ง์ง ์๋๋ค.
- ์๋ฒ์ OS๋ชจ๋ ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋๋ฉด ์ต๊ทผ 1์ด๋์์ ํธ๋์ญ์ ๋ฐ์ดํฐ๋ ์ฌ๋ผ์ง ์ ์๋ค.
0๊ณผ 2๋ก ์ค์ ํด๋์๋, ๋ง์ฝ DDL์ด ์คํ๋๋ฉด ๋ฆฌ๋๋ก๊ทธ๊ฐ ๋์คํฌ๋ก ๋๊ธฐํ๋๊ธฐ ๋๋ฌธ์ 1์ด๋ณด๋ค ์งง์ ์๋์๋ค. ํ์ง๋ง ์คํค๋ง ๋ณ๊ฒฝ ์์ ์ ์์ฃผ ์คํ๋๋ ์์ ์ ์๋๋ฏ๋ก, ๋ฆฌ๋ ๋ก๊ทธ๋ ์ต๋ 1์ด ์ ๋ ์์ค์ด ๋ฐ์ํ ์ ์๋ค.
innodb_flush_log_at_timeout
- 0๊ณผ 2์ผ ๊ฒฝ์ฐ ๋์คํฌ ๋์ํ ์๊ฐ๊ฐ๊ฒฉ์ ์ ์์คํ ๋ณ์๋ก ๋ณ๊ฒฝํ ์ ์๋ค.
- ๊ธฐ๋ณธ 1์ด์ด๋ฉฐ ์ผ๋ฐ์ ์ธ ์๋น์ค์์ ์ด ๊ฐ๊ฒฉ์ ๋ณ๊ฒฝํ ์ด์ ๋ ์์ ๊ฒ์ด๋ค.
๋ฆฌ๋ ๋ก๊ทธ ํ์ผ๋ค์ ์ ์ฒดํฌ๊ธฐ๊ฐ ๋ฒํผํ์ ํจ์จ์ฑ์ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ ์ ์คํ๊ฒ ๊ฒฐ์ ํด์ผํ๋ค.
innodb_log_files_size
: ๋ฆฌ๋ ๋ก๊ทธ ํ์ผ ํฌ๊ธฐ ๊ฒฐ์ innodb_log_files_in_group
: ๋ฆฌ๋ ๋ก๊ทธ ํ์ผ ๊ฐ์ ๊ฒฐ์ - ์ ์ฒดํฌ๊ธฐ = ํ์ผํฌ๊ธฐ * ํ์ผ๊ฐ์
- ์ ์ฒดํฌ๊ธฐ๋ ๋ฒํผํ์ ํฌ๊ธฐ์ ๋ง๊ฒ ์ ํ๋ผ์ผ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๋ฒํผํ์ ๋ชจ์๋ค๊ฐ ํ๋ฒ์ ๋ชจ์ ๋์คํฌ๋ก ๊ธฐ๋กํ ์ ์๋ค.
- ํ์ง๋ง ์ฌ์ฉ๋์ด ๋ง์ DBMS ์๋ฒ์ ๊ฒฝ์ฐ ๋ฆฌ๋ ๋ก๊ทธ์ ๊ธฐ๋ก์์ ์ด ํฐ ๋ฌธ์ ๊ฐ ๋๋๋ฐ ์ด๋ฌํ ๋ถ๋ถ์ ๋ณด์ํ๊ธฐ ์ํด ์ต๋ํ ACID ์์ฑ์ ๋ณด์ฅํ๋ ์์ค์์ ๋ฒํผ๋งํ๋ค.
- ์ด๋ฌํ ๋ฆฌ๋ ๋ก๊ทธ ๋ฒํผ๋ง์ ์ฌ์ฉ๋๋ ๊ณต๊ฐ์ด ๋ก๊ทธ ๋ฒํผ๋ค.
๋ก๊ทธ๋ฒํผ
- ๋ก๊ทธ ๋ฒํผ๋ ๊ธฐ๋ณธ๊ฐ์ด 16MB ์์ค์์ ์ค์ ํ๋ ๊ฒ์ด ์ ํฉํ๋ค.
- ํ์ง๋ง BLOB์ด๋ TEXT์ ๊ฐ์ด ํฐ ๋ฐ์ดํฐ๋ฅผ ์์ฃผ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ ๋ ํฌ๊ฒ ์ค์ ํ๋ ๊ฒ์ด ์ข๋ค.
ACID ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํธ๋์ญ์ ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๊ผญ ํ์ํ 4๊ฐ์ง ์์
- A(Atomic): ํธ๋์ญ์ ์ ์์์ฑ ์์ ์ด์ด์ผ ํจ์ ์๋ฏธํ๋ค.
- C(Consistent): ์ผ๊ด์ฑ์ ์๋ฏธํ๋ค.
- I(Isolated): ๊ฒฉ๋ฆฌ์ฑ์ ์๋ฏธํ๋ค.
- D(Durable): ํ๋ฒ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ์ง์์ ์ผ๋ก ์ ์ง๋ผ์ผ ํ๋ค.
...
์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค: ์ฌ์ฉ์๊ฐ ์๋์ผ๋ก ์์ฑํ๋ ์ธ๋ฑ์ค๊ฐ ์๋, InnoDB ์คํ ๋ฆฌ์ง ์์ง์์ ์ฌ์ฉ์๊ฐ ์์ฃผ ์์ฒญํ๋ ๋ฐ์ดํฐ์ ๋ํด ์๋์ผ๋ก ์์ฑํ๋ ์ธ๋ฑ์ค
- B-Tree ์ธ๋ฑ์ค์์ ํน์ ๊ฐ์ ์ฐพ๋ ๊ณผ์ ์ด ๋งค์ฐ ๋น ๋ฅผ ๊ฑฐ๊ฐ์ง๋ง, DB ์๋ฒ๊ฐ ์ผ๋ง๋ ๋ง์ ์ผ์ ํ๋๋์ ๋ฐ๋ผ B-Tree ์ธ๋ฑ์ค์์ ๊ฐ์ ์ฐพ๋ ๊ณผ์ ์ด ๋๋ ค์ง ์๋ ๋นจ๋ผ์ง ์ ๋์์.
- ํน์ ๊ฐ์ ์ฐพ๊ธฐ ์ํด B-Tree์ ๋ฃจํธ ๋ ธ๋ -> ๋ธ๋์น ๋ ธ๋ -> ์ต์ข ๋ฆฌํ๋ ธํธ
- ์ด๋ฐ ์์ ์ ๋์์ ๋ช์ฒ๊ฐ์ ์ค๋ ๋๋ก ์คํํ๋ฉด? ์์ฐํ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค.
์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค๋ B-Tree ๊ฒ์์๊ฐ์ ์ค์ฌ์ฃผ๊ธฐ ์ํด ๋์ ๋ ๊ธฐ๋ฅ
- InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ์์ฃผ ์ฝํ๋ ๋ฐ์ดํฐ ํ์ด์ง์ ํค ๊ฐ์ ์ด์ฉํด ํด์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค๊ณ
- ํ์ํ ๋๋ง๋ค ์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค๋ฅผ ๊ฒ์ํ์ฌ ์ ์ฅ๋ ํ์ด์ง๋ฅผ ์ฆ์ ์ฐพ์๊ฐ
- B-Tree ๋ฃจํธ~๋ฆฌํ๊น์ง ์ฐพ๋ ๋น์ฉ์ด ์์ด์ง๊ณ CPU๋ ์ ์์ผ์ ํ์ง๋ง ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ๋นจ๋ผ์ง.
- ๋์์ ๋น ๋ฅธ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ ๊ฐ๋ฅ.
ํด์ ์ธ๋ฑ์ค๋ ์ธ๋ฑ์ค ํค ๊ฐ
์ ์๋ฑ์ค ํค ๊ฐ์ด ์ ์ฅ๋ ๋ฐ์ดํฐ ํ์ด์ง ์ฃผ์
์์ผ๋ก ๊ด๋ฆฌ๋๋ค.
์ธ๋ฑ์ค ํค ๊ฐ
์ B-Tree ์ธ๋ฑ์ค ๊ณ ์ ๋ฒํธ(Id)์ B-Tree ์ธ๋ฑ์ค ์ค์ ํค ๊ฐ ์กฐํฉ์ผ๋ก ์์ฑ.- ๋ชจ๋ B-Tree ์ธ๋ฑ์ค์ ๋ํ ์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค๊ฐ ํ๋์ ํด์ ์ธ๋ฑ์ค์ ์ ์ฅ๋๋ฉฐ, ํน์ ํค ๊ฐ์ด ์ด๋ ์ธ๋ฑ์ค์ ์ํ ๊ฒ์ธ์ง ๊ตฌ๋ถํด์ผํ๋ค.
๋ฐ์ดํฐ ํ์ด์ง ์ฃผ์
๋ ์ค์ ํค ๊ฐ์ด ์ ์ฅ๋ ๋ฐ์ดํฐ ํ์ด์ง์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ์ง๋ฉฐ, ์ด๋ InnoDB๋ฒํผํ์ ๋ก๋ฉ๋ ํ์ด์ง์ ์ฃผ์๋ฅผ ์๋ฏธ- ๊ทธ๋์ ์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค๋ ๋ฒํผ ํ์ ์ฌ๋ ค์ง ๋ฐ์ดํฐ ํ์ด์ง์ ๋ํด์๋ง ๊ด๋ฆฌ๋๊ณ , ๋ฒํผ ํ์ ํด๋น ๋ฐ์ดํฐ ํ์ด์ง๊ฐ ์์ด์ง๋ฉด ์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค์์๋ ํด๋น ํ์ด์ง๋ ์ฌ๋ผ์ง๋ค.
์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค๊ฐ ํ์ฑํ๋๋ฉด ์ฒ๋ฆฌ๋์ด ๋์ด๋๋ค. ํ์ง๋ง ์ด๋ฅผ ์๋์ ์ผ๋ก ๋นํ์ฑํํ๋ ๊ฒฝ์ฐ๋ ์๋ค.
- ๋์คํฌ ์ฝ๊ธฐ๊ฐ ๋ง์ ๊ฒฝ์ฐ
- ํน์ ํจํด ์ฟผ๋ฆฌ๊ฐ ๋ง์ ๊ฒฝ์ฐ
- ๋งค์ฐ ํฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ํ ์ด๋ธ์ ๋ ์ฝ๋๋ฅผ ํญ ๋๊ฒ ์ฝ๋ ๊ฒฝ์ฐ
์๋๋ ์ฑ๋ฅ ํฅ์์ ๋์๋๋ ๊ฒฝ์ฐ
- ๋์คํฌ์ ๋ฐ์ดํฐ๊ฐ InnoDB๋ฒํผํ ํฌ๊ธฐ์ ๋น์ทํ ๊ฒฝ์ฐ(์ฝ๊ธฐ๊ฐ ๋ง์ง ์์ ๊ฒฝ์ฐ)
- ๋๋ฑ ์กฐ๊ฑด ๊ฒ์(๋๋ฑ ๋น๊ต์ In ์ฐ์ฐ์)์ด ๋ง์ ๊ฒฝ์ฐ
- ์ฟผ๋ฆฌ๊ฐ ๋ฐ์ดํฐ ์ค์์ ์ผ๋ถ ๋ฐ์ดํฐ์๋ง ์ง์ค๋๋ ๊ฒฝ์ฐ
ํ์ง๋ง ๋จ์ํ ๋์์ ์ ๋ฌด๋ฅผ ํ๋จํ๋๊ฑด ์ฝ์ง ์์.
ํ์คํ๊ฑด ์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค๋ ๋ฐ์ดํฐ ํ์ด์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ(๋ฒํผํ)๋ด์์ ์ ๊ทผํ๋ ๊ฒ์ ๋น ๋ฅด๊ฒ ๋ง๋๋ ๊ธฐ๋ฅ์ด๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ ํ์ด์ง๋ฅผ ๋์คํฌ์์ ์ฝ์ด์ค๋ ๊ฒฝ์ฐ๊ฐ ๋น๋ฒํ๋ฉด ์๋ฌด๋ฐ ๋์์ด ๋์ง ์๋๋ค.
๋ํ ์ด๋ ํ ์ด๋ธ ์ญ์ ์์ ์๋ ๋ง์ ์ํฅ์ ๋ฏธ์น๋ค.
- ๋ง์ฝ ์ด๋ค ํ ์ด๋ธ ์ธ๋ฑ์ค๊ฐ ์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค์ ์ ์ฌ๋ผ ์๋ค๊ณ ๊ฐ์ ํด๋ณด์.
- ์ด๋ ํ ์ด๋ธ์ ์ญ์ /๋ณ๊ฒฝํ๊ฒ ๋๋ฉด ์ด ํ ์ด๋ธ์ด ๊ฐ์ง ๋ชจ๋ ๋ฐ์ดํฐ ํ์ด์ง ๋ด์ฉ์ ์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค์์ ์ ๊ฑฐํด์ผํ๋ค.
- ์๋นํ ๋ง์ CPU ์ฌ์์ ์ฌ์ฉํ๊ฒ ๋จ. โก๏ธ ์น๋ช ์ ์ธ ์์
๋ฐ๋ผ์ ์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค๊ฐ ์๋น์ค์ ๋์์ด ๋๋์ง ์๋์ง ์ ํ๋จํด์ผํ๋ค.
๊ทธ๋ฅ. InnoDB ์์ง ์ฐ๋ผ๋ ๋ด์ฉ.
- MEMORY๋ผ๋ ์ด๋ฆ์ผ๋ก ๊ณผ๋ํ๊ฐ ๋ฐ์ง๋ง InnoDB ๋ชป๋ฐ๋ผ๊ฐ.
- MyISAM ์คํ ๋ฆฌ์ง ์์ง๋ง์ด ๊ฐ์ง๋ ์ฅ์ ์์.