MySQL์ ๊ตฌ์ฑ ์์
MySQL์ ์ฟผ๋ฆฌ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์๋ฒ ์์ง๊ณผ ์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์คํ ๋ฆฌ์ง ์์ง์ผ๋ก ๋๋๋ค.
์๋ฒ์์ง
- ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ์ SQL์ ์ฒ๋ฆฌํ๋ค.
- DB๊ฐ SQL์ ์ดํดํ ์ ์๋๋ก ์ฟผ๋ฆฌ๋ฅผ ์ฌ๊ตฌ์ฑํ๋ โ์ฟผ๋ฆฌ ํ์ฑโ, ์คํ ๋ฆฌ์ง์์ง์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ค.
- ์ฟผ๋ฆฌ ์บ์, ์ตํฐ๋ง์ด์ง์ ์ํํ๋ค.
- Table Join, Group By, Order By ๊ฐ์ ์ผ๋ฐ์ ์ธ SQL ์ฒ๋ฆฌ๋ถํฐ Function/Procedure, Trigger, Constraint ๊ฐ์ ๊ธฐ๋ฅ์ ์ํํ๋ค.
์คํ ๋ฆฌ์ง ์์ง
- ์๋ฒ์์ง์ด ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ฌผ๋ฆฌ ์ฅ์น์์ ๊ฐ์ ธ์ค๋ ์ญํ ์ด๋ค.
- ์ฌ๋ฌ๊ฐ์ง ์คํ ๋ฆฌ์ง ์์ง์ด ์กด์ฌํ๋ฉฐ, ํ๋ฌ๊ทธ์ธ ์์ผ๋ก ๊ต์ฒดํด๊ฐ๋ฉฐ ์ธ ์ ์๋ค.
- InnoDB, MyISAM, CSV, MEMORY, ARCHIVE, FEDERATED, MRG_MYISAM, BLACKHOLE
์ฃผ์ ์คํ ๋ฆฌ์ง ์์ง์ ํน์ง
MyISAM | InnoDB | Archive | |
---|---|---|---|
์คํ ๋ฆฌ์ง ์ ํ | 256TB | 64TB | None |
ํธ๋์ญ์ | No | Yes | No |
Locking ๋ ๋ฒจ | Table | Row | Row |
์ธ๋ฑ์ค | B-Tree | B-Tree | No |
Cache | Index | Data/Index | No |
ํํฐ์ ๋ | Yes | Yes | Yes |
Cluster Index | No | Yes | No |
Foriegn Key | No | Yes | No |
์คํ ๋ฆฌ์ง ์์ง
MyISAM
๊ฐ์ฅ ์ค๋๋ ์คํ ๋ฆฌ์ง ์์ง์ด๋ฉฐ ํ์ผ ๊ธฐ๋ฐ ์คํ ๋ฆฌ์ง ์์ง์ด๋ค.
์ธ๋ฑ์ค๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ ์ฒ๋ฆฌํ๋ค. ๋ฐ์ดํฐ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ์ง ์๊ณ ๋ฐ๋ก ๋์คํฌ๋ก ์ ๊ทผํด์ ๊ฐ์ ธ์จ๋ค.
ํธ๋์ญ์ ์ด ์ง์๋์ง ์๊ณ , ํ ์ด๋ธ๋จ์ ์ ๊ธ์ด ์ด๋ฃจ์ด์ง๋ค. ํธ๋์ญ์ ์ด ์ง์๋์ง ์์ ๋ณดํต InnoDB๋ฅผ ๋ง์ด ์ด๋ค.
Full-text indexing, geo spatial indexing์ ์ ๊ณตํ๋ค.
InnoDB
MySQL์์ ์ ์ผํ๊ฒ ํธ๋์ญ์ ์ ์ง์ํ๋ ์คํ ๋ฆฌ์ง ์์ง์ด๋ค. MVCC(๋ค์ค ๋ฒ์ ๋์์ฑ ์ ์ด ๋งค์ปค๋์ฆ; ์ฌ๋ฌ ๊ฐ์ ๋ณต์ ๋ณธ์ ์ด์ฉํด์ ํ๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํจ์ผ๋ก์จ ์๋ก์ READ/WRITE๋ฅผ ๋ฐฉํดํ์ง ์๋ ๋ฐฉ์)๋ฅผ ์ ๊ณตํ๋ค.
์ธ๋ฑ์ค์ ๋ฐ์ดํฐ ๋ ๋ค ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ธฐ ๋๋ฌธ์ InnoDB_Buffer_Pool_SIze
๊ฐ DB ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์น๋ค.
Primary Key๋ Clustering Index(์ธ๋ฑ์ค ์์๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ๊ตฌ์กฐ)๋ก ๊ตฌ์ฑ๋๋ค.
Archive
๋ก๊ทธ ์์ง์ ์ ํฉํ๋ค.
๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ์์์ ์์ถ๋๊ณ , ์์ถ๋ ์ํ๋ก ๋์คํฌ์ ์ ์ฅ๋๋ค.
ํ๋ฒ INSERT๋๋ฉด UPDATE์ DELETE๋ฅผ ์ฌ์ฉํ ์ ์๊ณ , ์ธ๋ฑ์ค๋ฅผ ์ง์ํ์ง ์๋๋ค.
MySQL์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐฉ์
MySQL์์๋ ๋ชจ๋ SQL์ ๋จ์ผ ์ฝ์ด์์ ์ฒ๋ฆฌํ๋ค.
๊ทธ๋ฆฌ๊ณ MySQL์ ํ ์ด๋ธ ์กฐ์ธ์ Nested Loop Join ์๊ณ ๋ฆฌ์ฆ์ผ๋ก๋ง ์ฒ๋ฆฌํ๋ค.
Nested Loop Join ์๊ณ ๋ฆฌ์ฆ
์กฐ๊ฑด ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ํ๋ํ๋๋ฅผ ํ ์ด๋ธB์ ๋น๊ตํ์ฌ ์กฐ์ธํ๋ค. ex. for๋ฌธ ์์ for๋ฌธ ํ์์ด๋ค.
DB ๋ด๋ถ์์๋ Block Nested Loop Join๋ฐฉ์(์กฐ์ธ ๋ฒํผ ๊ฐ๋ )์ผ๋ก ์ฒ๋ฆฌํ๋๋ฐ, ํ ์ด๋ธ ์กฐ์ธ ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ(๋ฒํผ)์ ์ผ์์ ์ผ๋ก ์ ์ฅํด๋๊ณ ํ ๋ฒ์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ค.
for each row in t1 matching range {
for each row in t2 matching reference key {
for each row in t3 {
if row satisfies join conditions,
send to client
}
}
}
SQL์์ WHERE ์กฐ๊ฑด์ ์ ์ดํดํ๊ณ ์ฐ์
๋ฌต์์ ํ๋ณํ ํจ์ ์ ๋น ์ง์ง ๋ง ๊ฒ
์กฐ๊ฑด์ ์ ๋ฐ์ดํฐ ํ์ ์ด ๋ค๋ฅผ ๋ ์ฐ์ ์์๊ฐ ๋์ ํ์ ์ผ๋ก ๋ด๋ถ์ ์ผ๋ก ํ๋ณํ๋๋ ๊ฒ์ ๋งํ๋ค.
์ ์ ํ์ ์ด ๋ฌธ์์ด๋ณด๋ค ์ฐ์ ์์๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๋ฌธ์์ด๊ณผ ์ ์๊ฐ ๋น๊ต ์ ์ ์ ํ์ ์ผ๋ก ์๋์ผ๋ก ํ๋ณํ๋์ด ์ฒ๋ฆฌ๋๋ค. ๋ง์ฝ ์ธ๋ฑ์ค ํ๋์์ ์ด ํ๋ณํ์ด ์ผ์ด๋๋ค๋ฉด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฌต์์ ์ผ๋ก ํ๋ณํํ๊ธฐ ๋๋ฌธ์ ํ ์ด๋ธ ํ ์ค์บ์ ํด์ผ ํ๋ค. ์ตํฐ๋ง์ด์ ๋ ๋ฌธ์์ด ์ธ๋ฑ์ค๋ฐ์ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ์ฌ๊ฐํ ์ฑ๋ฅ ์ ํ๊ฐ ์ผ์ด๋๋ค.
ํจ์ ์ฌ์ฉ
๋ด์ฅ ํจ์, ๋๋ ์ฌ์ฉ์ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ธ๋ฑ์ค๊ฐ ์ ์ฉ๋์ง ์์ ์ฑ๋ฅ์ ๋ ์์ข์ ์ ์๋ค.
LIKE ๊ฒ์
๋์ฉ๋ ํ ์ด๋ธ์ธ ๊ฒฝ์ฐ์ ์ํํ ์ ์๋ค.
LIKE ๊ฒ์ ์ โ%โ ์์น์ ๋ฐ๋ผ์๋ ์นผ๋ผ์ ํด๋น ์ธ๋ฑ์ค๊ฐ ์์์ง๋ผ๋ ์ค๊ฐ ๋๋ ๋ท๋ถ๋ถ๋ถํฐ ๊ฒ์ํ๋ฉด ์๋ฏธ๊ฐ ์์ ์ ์๋ค.
๋ ๋๋ถ๋ถ์ DBMS์๋ ์ตํฐ๋ง์ด์ ๊ฐ ์๋๋ฐ, ์ตํฐ๋ง์ด์ ๋ ๋ฐ์ดํฐ ๋ถํฌ๋๋ฅผ ๋ฐ์ ธ์ ๋ด๋ถ์ ์ผ๋ก SQL์ ์ต์ ํ ํ๋ค. ๋ง์ฝ ์กฐํํด์ผ ํ ๋ฐ์ดํฐ๊ฐ ๊ธฐ์ค์น ์ด์์ด๋ผ๋ฉด, ์ตํฐ๋ง์ด์ ๊ฐ ์ธ๋ฑ์ค๋ฅผ ๋จผ์ ์ฝ๊ณ ๋ค์ ํ์ผ๋ก ๊ฐ๋ ๊ฒ ๋ณด๋ค ํ์ผ์ ๋ฐ๋ก ์ฝ๋ ๊ฒ์ด ๋ซ๋ค๊ณ ํ๋จํด DB Full Scan์ ํ๊ธฐ๋ ํ๋ค.
TODO
- LIKE ์กฐ๊ฑด์ด โ๊ฒ์์ด%โ์ฒ๋ผ ๊ฒ์์ด๊ฐ ์ ๋จ์ ์๋ค๋ฉด ๋ฐ์ดํฐ ๋ถํฌ๋๋ฅผ ๋ฐ์ ธ์ ์ํํ๋ค.
- LIKE ์กฐ๊ฑด์ด โ%๊ฒ์์ดโ์ ๊ฐ์ ํํ๋ก ๋ฐ๋์ ์ํํด์ผ ํ๋ค๋ฉด LIKE ์กฐ๊ฑด ์ด์ธ์ ์กฐ๊ฑด์ ์ ์ ๊ทน ํ์ฉํด์ ํ์ํ ๋ฐ์ดํฐ ๋ฒ์๋ฅผ ์ต๋ํ ์ค์ธ๋ค.
Transaction Isolation Level์ ์ ์ํ์
MySQL์์ ํธ๋์ญ์ Isolation ๋ ๋ฒจ์ ๊ธฐ๋ณธ์ ์ผ๋ก โREPEATABLE-READโ์ด๋ค.
์ด ์ํ์์ โINSERTโ๋ โCREATEโ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ฉด ์ฐธ์กฐํ๋ ํ ์ด๋ธ์ โํ ์ด๋ธ ๋จ์ ์ ๊ธโ์ด ๋ฐ์ํ ์ ์๋ค.
ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค์ ์ข ๋ฅ
- READ UNCOMMITTED ์ปค๋ฐ ์ ์ํ๋ฅผ ๋ณผ ์ ์์
- READ COMMITED ์ปค๋ฐ๋ ์ํ๋ง ์ฝ์ ์ ์์.
- REPEATABLE READ InnoDB์ ๊ธฐ๋ณธ ์ค์ . SELECT ์ ํ์ฌ ๋ฐ์ดํฐ์ ์ค๋ ์ท์ ๋ง๋ค์ด์ ์ค๋ ์ท์ ์กฐํ. ๋์ผ ํธ๋์ญ์ ์์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋ณด์ฅํจ. ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์ฝ์ผ๋ ค๋ฉด ํธ๋์ญ์ ์ ๋ค์ ์์ํด์ผ ํ๋ค.
- SERIALIZABLE ํธ๋์ญ์ ์ด ์๋ฃ๋ ๋ ๊น์ง SELECT ๋ฌธ์ฅ์ด ์ฌ์ฉํ๋ ๋ชจ๋ ๋ฐ์ดํฐ์ Shared Lock(์ฝ๊ธฐ๋ง ๊ฐ๋ฅ)์ด ๊ฑธ๋ฆผ.
์ธ๋ฑ์ค๋ ์ ์ฌ์ ์์ ๋ฐฐ์นํ์
์ธ๋ฑ์ค๊ฐ ๊ฑธ๋ฆฐ ํ ์ด๋ธ์ ์์ดํ ์ ์ฝ์ ํ๋ค๋ฉด
InnoDB์์๋ Primary Key ์์๋๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ InnoDB์์ Primary Key๋ ์ฑ๋ฅ์ ์ง์ ์ ์ธ ์ํฅ์ ์ค๋ค. ๋ฐ์ดํฐ ์ฝ์ ์ด ์ผ์ด๋๋ฉด ์ ์ฒด ํ์ ์์๋ค์ ๋ง์ถ๊ธฐ ์ํด ๊ธฐ์กด์ ๋ฐ์ดํฐ๋ค์ด ์ด๋๋๋ฏ๋ก ์ฑ๋ฅ์ด ์ ํ๋๋ค (๋ฐ๋ผ์ ์์ฐจ ์ฝ์ ์ด ๋๋ค ์ฝ์ ๋ณด๋ค๋ ๋์)
๊ทธ๋ ๋ค๊ณ ํด์ Primary Key๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด, InnoDB์์๋ Primary Key๋ฅผ ์ ์ธํ์ง ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก Primary Key๋ฅผ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ ์ํด์ผ ํ๋ค.
- ์ธ๋ฑ์ค ์ค Unique ์์ฑ์ด ์๋ Key๋ฅผ Primary Key๋ก ์ฌ์ฉํ๋ค.
- Primary Key๋ ์๊ณ Unique Key๋ ์์ผ๋ฉด ๋ด๋ถ์ ์ผ๋ก 6Byte์ ๋์ฒด Primary Key๋ฅผ ์์ฑํด์ ์ฌ์ฉํ๋ค.
๋ถํ์ํ ์ธ๋ฑ์ค๊ฐ ๋ง์ผ๋ฉด?
CREATE TABLE `test_0_index` (
`i` int(10) unsigned NOT NULL AUTO_INCREMENT,
`j` int(10) unsigned NOT NULL,
`s` varchar(64) NOT NULL,
`d` datetime NOT NULL,
PRIMARY KEY (`i`),
INDEX idx_j(j),
INDEX idx_d(d),
INDEX cidx_jd(j,d),
INDEX cidx_dj(d,j)
);
์์ ๊ฐ์ ํ ์ด๋ธ์์ cidx_jd์ cidx_dj ์ธ๋ฑ์ค์์ ๊ฐ ์ปฌ๋ผ์ ๋ณตํฉ ์ธ๋ฑ์ค ํ์์ผ๋ก ๊ตฌ์ฑํ๊ธฐ ๋๋ฌธ์ j ๋๋ d๋ง์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ์ฟผ๋ฆฌ ์์ฒญ์ด ์๋ ์ ์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ถ์ถํ๋ฏ๋ก j์ d ์ปฌ๋ผ์ ์ธ๋ฑ์ค๋ ๋ถํ์ํ๋ค.
ํ์ง๋ง ๋ง์ฝ d๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ํ ๊ฒฐ๊ณผ๋ฅผ i ์ปฌ๋ผ ์์๋ก ๊ฐ์ ธ์ค๋๊ฒ์ด ๋ชฉ์ ์ด๋ผ๋ฉด cidx_dj๊ฐ ์คํ๋ ค ํ์์๋ ์ธ๋ฑ์ค์ด๋ค โ idx_d๋ก ๊ฒ์ํ ๊ฒฐ๊ณผ๋ primary key ์์๋๋ก ๋์ค์ง๋ง, cidx_dj ์ธ๋ฑ์ค์์ d๋ก ๊ฒ์ํ ๊ฒฐ๊ณผ๋ j์์๋๋ก ๋์ค๊ธฐ ๋๋ฌธ์ด๋ค.
์ธ๋ฑ์ค ์ฌ์ด์ฆ ์ค์ด๊ธฐ
์ธ๋ฑ์ค๊ฐ ์ปค์ง๋ฉด ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ด ๋จ์ด์ง๊ณ Disk I/O๊ฐ ๋ง์์ง๋ค.
varchar ์ธ๋ฑ์ค์ ๊ฒฝ์ฐ๋ผ๋ฉด crc32 ๊ฐ์ ํด์ ํจ์๋ฅผ ์ด์ฉํด ํฌ๊ธฐ๋ฅผ ์ค์ด์.
ํ ์ด๋ธ ํํฐ์ ๋
ํํฐ์ ๋; ํ๋์ ์ปค๋ค๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ก ๋ถํ ์ ์ฅํจ์ผ๋ก์จ ๋ฐ์ดํฐ ์ ํ ํจ์จ์ ๋์ด๋ ๊ธฐ๋ฒ์ด๋ค.
์ ํ ์ฌํญ
- ํํฐ์ ๋ ํค๋ Primary Key์ ์ฐ๊ด๋ ์ปฌ๋ผ์ด์ด์ผ ํ๋ค.
- ํํฐ์ ๋ ์ฌ์ฉ ์ Unique Key ํน์ Foriegn Key์ ๊ฐ์ ์ ์ฝ ์กฐ๊ฑด์ ์ถ๊ฐํ ์ ์๋ค.
- ํํฐ์ ๋ ์ ์ฉ ์ ํํ ์คํธ ์ธ๋ฑ์ฑ(full text search์์ ์ฌ์ฉ. ๋ฏธ๋ฆฌ ๋งคํ ์ ๋ณด๋ฅผ ์ ์ฅ.) ํน์ Spatial ์ธ๋ฑ์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.
- ๋ฐ์ดํฐ ์กฐํ ์ ๋ฐ๋์ ํํฐ์ ๋ ํค๋ฅผ ํฌํจํด์ผ ํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ์ ์ฒด ๋ฐ์ดํฐ ํ์ผ์ ์ค์บํ๋ค.
์คํ ๋ฆฌ์ง ์์ง์์ ๊ณ ๋ คํด์ผ ํ ์
InnoDB ๋์ ๋ค๋ฅธ ์คํ ๋ฆฌ์ง ์์ง์ ์ฌ์ฉ
InnoDB๋ ํ ๋จ์ ์ ๊ธ์ผ๋ก ์ฒ๋ฆฌ(๋์์ฑ ์ข์) + ์ธ๋ฑ์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋ฒํผํ(๋ฉ๋ชจ๋ฆฌ)์ ์ ์ฅํ๋ฏ๋ก ๋์คํฌ I/O๊ฐ ์ค์ด๋ ๋ค.
ํ์ง๋ง ๋ฐ๋๋ก ์ธ๋ฑ์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ด ์ข์ง ์๋ค. ๊ฒ๋ค๊ฐ Primary Key๋ฅผ ์ ์ธํ ๋ณด์กฐ ์ธ๋ฑ์ค๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ธฐ ์ํ Primary Key๋ฅผ ํจ๊ป ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค ์ฌ์ด์ฆ๊ฐ ์๋นํ ์ปค์ง ์ ์๋ค.
๋ฐ๋ผ์ ๋จ์ ๋ก๊ทธ ์์ง์ ์ํ ๋ฐ์ดํฐ๋ผ๋ฉด ๋ค๋ฅธ ์คํ ๋ฆฌ์ง ์์ง์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. โ Archive or MyISAM.
์๋น์ค ํน์ฑ์ ๋ฐ๋ฅธ ์คํ ๋ฆฌ์ง ์์ง ์ ์
๋ก๊ทธ์ ์ฉ, ์ ๋ฐ์ดํธ X โ Archive
์ฝ๊ธฐ ์ ์ฉ or ๋ก๊ทธ+์ ๋ฐ์ดํธ โ MyISAM
๋์ ์ฒ๋ฆฌ, ํธ๋์ญ์ โ InnoDB
InnoDB ์ฌ์ฉ ์ Barracuda ํ์ผ ํฌ๋งท ๊ณ ๋ คํ๊ธฐ
๋ฐ์ดํฐ๋ฅผ Compact, Dynamic, Compressed ์ด ์ธ ๊ฐ์ง ํ์ ์ผ๋ก ์ ์ฅํ ์ ์๋ค.
Compact
ํ ์คํธ ์นผ๋ผ(BLOB, VARCHAR, TEXT)์ ๊ฒฝ์ฐ ์ฒ์ 768๋ฐ์ดํธ๋ง ๋ฐ์ดํฐ ํธ๋ฆฌ์ ์ ์ฅํ๊ณ ๋๋จธ์ง๋ ๋ณ๋์ ํ์ด์ง์ ์ ์ฅ. ๋๋จธ์ง ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ธฐ ์ํ ํฌ์ธํฐ 20๋ฐ์ดํธ๊ฐ ๋ด๋ถ์ ์ผ๋ก ์์ฑ๋๋ค.
Dynamic
์ ์ฒด ์นผ๋ผ์ ๋ฐ์ดํฐ ํธ๋ฆฌ์ ๋ฃ๋๋ก ์๋. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ณ๋์ ํ์ด์ง์ ์ ์ฅํ๋ค.
Compressed
Dynamic์ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ ํด์ง ๋ธ๋ก ์ฌ์ด์ฆ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ถํ๋ค. ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ ๊ทธ๋๋ก ์์ถํด์ ์ ์ฅํ๋ค. zlib ์๊ณ ๋ฆฌ์ฆ์ ํตํด ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค๋ฅผ ๋ชจ๋ ์์ถํด์ ์ ํ๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ฆ๋ฅผ ๊ทน๋ณตํ๊ฒ ํด์ค๋ค