์ด๋ฒ ๊ธ์์๋ 'MySQL์ ์ ์ฒด ๊ตฌ์กฐ'์ '์ฟผ๋ฆฌ ์คํ ๊ตฌ์กฐ'๋ฅผ ์ดํด๋ณด๊ณ ์ ํ๋ค. InnoDB ์คํ ๋ฆฌ์ง ์์ง๊ณผ MyISAM ์คํ ๋ฆฌ์ง ์์ง์ ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ ์ดํ์ ๊ธ๋ค์ ์ฐธ๊ณ ํ๋ ๊ฒ์ผ๋ก ํ์.
๐ 1. MySQL์ ์ ์ฒด ๊ตฌ์กฐ
MySQL(=MySQL ์๋ฒ)์ ํฌ๊ฒ MySQL ์์ง๊ณผ ์คํ ๋ฆฌ์ง ์์ง์ผ๋ก ๊ตฌ๋ถํ ์ ์๋ค. MySQL ์์ง์ ์ฌ๋์ ๋จธ๋ฆฌ ์ญํ ์ ๋ด๋นํ๊ณ , ์คํ ๋ฆฌ์ง ์์ง์ ์๊ณผ ๋ฐ์ ์ญํ ์ ๋ด๋นํ๋ค๊ณ ํ ์ ์๋ค.
MySQL์ ์ผ๋ฐ ์์ฉ RDBMS์ ๊ฐ์ด ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก๋ถํฐ ์ ๊ทผ ๋ฐฉ๋ฒ์ ๋ชจ๋ ์ง์ํ๋ค. MySQL ๊ณ ์ ์ C API๋ถํฐ ์์ํด JDBC, ODBC, .NET์ ํ์ค ๋๋ผ์ด๋ฒ๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ด๋ฌํ ๋๋ผ์ด๋ฒ๋ฅผ ์ด์ฉํด ๋ค์ํ ์ธ์ด๋ก MySQL ์๋ฒ์์ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ์ง์ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ค์ ํ ์ด๋ธ ๋ฐ์ดํฐ์ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ํ์ผ๋ก ์ ์ฅํ๋ ์ด์์ฒด์ ํ์ผ ์์คํ ๊ณผ ํ๋์จ์ด ๋ถ๋ถ์ด ์๋ค.
๐ 1. MySQL ์์ง
MySQL ์์ง์ ์์ฒญ๋ SQL ๋ฌธ์ฅ์ ๋ถ์ํ๊ฑฐ๋ ์ต์ ํํ๋ ๋ฑ DBMS์ ๋๋์ ํด๋นํ๋ ์ฒ๋ฆฌ๋ฅผ ์ํํ๋ค.
MySQL ์์ง์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ์ ์ ์ ๋ฐ ์ฟผ๋ฆฌ ์์ฒญ์ ์ฒ๋ฆฌํ๋ '์ปค๋ฅ์ ํธ๋ค๋ฌ', 'SQL ํ์', '์ ์ฒ๋ฆฌ๊ธฐ', ๊ทธ๋ฆฌ๊ณ ์ฟผ๋ฆฌ์ ์ต์ ํ๋ ์คํ์ ์ํ '์ตํฐ๋ง์ด์ '๊ฐ ์ค์ฌ์ ์ด๋ฃฌ๋ค.
๋ํ, MySQL์ ํ์ค SQL(ANSI SQL) ๋ฌธ๋ฒ์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ํ์ค ๋ฌธ๋ฒ์ ๋ฐ๋ผ ์์ฑ๋ ์ฟผ๋ฆฌ๋ ํ DBMS์ ํธํ๋์ด ์คํ๋ ์ ์๋ค.
๐ 2. ์คํ ๋ฆฌ์ง ์์ง
์คํ ๋ฆฌ์ง ์์ง์ ์ค์ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ ์คํ ๋ฆฌ์ง์ ์ ์ฅํ๊ฑฐ๋ ๋์คํฌ ์คํ ๋ฆฌ์ง๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ๋ถ๋ถ์ ๋ด๋นํ๋ค. MySQL ์๋ฒ์์ MySQL ์์ง์ ํ๋์ง๋ง ์คํ ๋ฆฌ์ง ์์ง์ ์ฌ๋ฌ ๊ฐ๋ฅผ ๋์์ ์ฌ์ฉํ ์ ์๋ค.
๋ํ์ ์ธ ์คํ ๋ฆฌ์ง ์์ง์ MySQL ์๋ฒ์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต๋๋ InnoDB ์คํ ๋ฆฌ์ง ์์ง๊ณผ MyISAM ์คํ ๋ฆฌ์ง ์์ง์ด ์๋ค.
๐ 3. ํธ๋ค๋ฌ API
MySQL ์์ง์ ์ฟผ๋ฆฌ ์คํ๊ธฐ์์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฑฐ๋ ์ฝ์ด์ผ ํ ๋๋ ๊ฐ ์คํ ๋ฆฌ์ง ์์ง์ ์ฐ๊ธฐ ๋๋ ์ฝ๊ธฐ๋ฅผ ์์ฒญํ๋๋ฐ, ์ด๋ฌํ ์์ฒญ์ ํธ๋ค๋ฌ(Handler) ์์ฒญ์ด๋ผ ํ๊ณ , ์ฌ๊ธฐ์ ์ฌ์ฉ๋๋ API๋ฅผ ํธ๋ค๋ฌ API๋ผ๊ณ ํ๋ค.
์ฆ, ํธ๋ค๋ฌ API๋ฅผ ํตํด MySQL ์์ง๊ณผ ์คํ ๋ฆฌ์ง ์์ง์ด ํต์ ์ ์ฃผ๊ณ ๋ฐ๋๋ค.
โญ MySQL ์๋ฒ์์ MySQL ์์ง์ ์ฌ๋ ์ญํ ์ ํ๊ณ ๊ฐ ์คํ ๋ฆฌ์ง ์์ง์ ์๋์ฐจ ์ญํ ์ ํ๋๋ฐ, MySQL ์์ง์ด ์คํ ๋ฆฌ์ง ์์ง์ ์กฐ์ ํ๊ธฐ ์ํด ํธ๋ค๋ฌ๋ผ๋ ๊ฒ์ ์ฌ์ฉํ๋ค๊ณ ์ดํดํ๋ฉด ๋๊ฒ ๋ค. โญ
๐ 2. ์ฟผ๋ฆฌ ์คํ ๊ตฌ์กฐ
SQL ์์ฒญ์ด ๋ค์ด์ค๋ฉด MySQL ์์ง์ ์ฟผ๋ฆฌ ํ์, ์ ์ฒ๋ฆฌ๊ธฐ, ์ตํฐ๋ง์ด์ , ์ฟผ๋ฆฌ ์คํ๊ธฐ๋ฅผ ๊ฑฐ์ณ ์คํ ๋ฆฌ์ง ์์ง์ด ์คํ๋๋ค.
๐ 1. ์ฟผ๋ฆฌ ํ์
์ฟผ๋ฆฌ ํ์๋ ์ฌ์ฉ์ ์์ฒญ์ผ๋ก ๋ค์ด์จ ์ฟผ๋ฆฌ ๋ฌธ์ฅ์ ํ ํฐ(MySQL์ด ์ธ์ํ ์ ์๋ ์ต์ ๋จ์์ ์ดํ๋ ๊ธฐํธ)์ผ๋ก ๋ถ๋ฆฌํด ํธ๋ฆฌ ํํ์ ๊ตฌ์กฐ๋ก ๋ง๋ค์ด ๋ด๋ ์์ ์ ์๋ฏธํ๋ค.
์๋ฅผ ๋ค์ด, SELECT id, name FROM t_user WHERE status = 'ACTIVE' AND age > 18๋ผ๋ ์ฟผ๋ฆฌ ๋ฌธ์ฅ์ ๋ค์๊ณผ ๊ฐ์ ํธ๋ฆฌ ํํ์ ๊ตฌ์กฐ๋ก ๋ง๋ค๊ฒ ๋๋ค.
๋ํ, ์ฟผ๋ฆฌ ๋ฌธ์์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ ์ค๋ฅ๋ ์ด ๊ณผ์ ์์ ๋ฐ๊ฒฌ๋๊ณ ์ฌ์ฉ์์๊ฒ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๊ฒ ๋๋ค.
๐ 2. ์ ์ฒ๋ฆฌ๊ธฐ
์ ์ฒ๋ฆฌ๊ธฐ์์๋ ํ์ ๊ณผ์ ์์ ๋ง๋ค์ด์ง ํ์ ํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฟผ๋ฆฌ ๋ฌธ์ฅ์ ๊ตฌ์กฐ์ ์ธ ๋ฌธ์ ์ ์ด ์๋์ง ํ์ธํ๋ค.
๊ฐ ํ ํฐ์ ํ ์ด๋ธ ์ด๋ฆ์ด๋ ์นผ๋ผ ์ด๋ฆ, ๋๋ ๋ด์ฅ ํจ์์ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๋งคํํด ํด๋น ๊ฐ์ฒด์ ์กด์ฌ ์ฌ๋ถ์ ๊ฐ์ฒด์ ์ ๊ทผ ๊ถํ ๋ฑ์ ํ์ธํ๋ ๊ณผ์ ์ ์ด ๋จ๊ณ์์ ์ํํ๋ค. ์ค์ ์กด์ฌํ์ง ์๊ฑฐ๋ ๊ถํ์ ์ฌ์ฉํ ์ ์๋ ๊ฐ์ฒด์ ํ ํฐ์ ์ด ๋จ๊ณ์์ ๊ฑธ๋ฌ์ง๋ค.
๐ 3. ์ตํฐ๋ง์ด์
์ตํฐ๋ง์ด์ ๋ ์ฌ์ฉ์์ ์์ฒญ์ผ๋ก ๋ค์ด์จ ์ฟผ๋ฆฌ ๋ฌธ์ฅ์ ์ด๋ป๊ฒ ์ ๋ ดํ ๋น์ฉ์ผ๋ก ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ์ญํ ์ ๋ด๋นํ๋ฉฐ, DBMS์ ๋๋์ ํด๋นํ๋ค๊ณ ๋ณผ ์ ์๋ค.
์ตํฐ๋ง์ด์ ๋ ๋น์ฉ ๊ธฐ๋ฐ ์ต์ ํ์ ๊ท์น ๊ธฐ๋ฐ ์ต์ ํ๋ก ๋๋ ์ ์๋ค.
- ๋น์ฉ ๊ธฐ๋ฐ ์ต์ ํ
SQL์ ์ฒ๋ฆฌํ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ๋ง๋ จํด ๋๊ณ ๊ฐ ๋ฐฉ๋ฒ์ ๋น์ฉ๊ณผ ํ ์ด๋ธ ํต๊ณ ์ ๋ณด๋ฅผ ํตํด์ ์คํ ๊ณํ์ ์๋ฆฝํ๋ค. - ๊ท์น ๊ธฐ๋ฐ ์ต์ ํ
์ตํฐ๋ง์ด์ ์ ๋ด์ฅ๋ ์ฐ์ ์์์ ๋ฐ๋ผ ์คํ ๊ณํ์ ์๋ฆฝํ๋ค.
MySQL์ ํฌํจํ ๋๋ถ๋ถ์ RDBMS๋ ๋น์ฉ ๊ธฐ๋ฐ ์ต์ ํ ๋ฐฉ์์ผ๋ก ์ตํฐ๋ง์ด์ ๊ฐ ๋์ํ๋ค.
๐ 4. ์คํ ์์ง
์คํ ์์ง์ ์ตํฐ๋ง์ด์ ๊ฐ ๋ง๋ค์ด์ค ์ฟผ๋ฆฌ ์คํ ๊ณํ์ ๋ฐ๋ผ์ ์คํ ๋ฆฌ์ง ์์ง์ ์ ์ ํ ํธ์ถํด์ ์ฟผ๋ฆฌ๋ฅผ ์ํํ๋ ์ญํ ์ ๋ด๋นํ๋ค. ์ด๋, ํธ๋ค๋ฌ API๋ฅผ ์ฌ์ฉํด์ ์คํ ๋ฆฌ์ง ์์ง๊ณผ ์ง์์ ์ผ๋ก ํต์ ํ๊ฒ ๋๋ค.
๐ 5. ์คํ ๋ฆฌ์ง ์์ง(ํธ๋ค๋ฌ)
์คํ ๋ฆฌ์ง ์์ง์ MySQL ์๋ฒ์ ๊ฐ์ฅ ๋ฐ๋จ์์ MySQL ์คํ ์์ง์ ์์ฒญ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ๋ก ์ ์ฅํ๊ณ ๋์คํฌ๋ก๋ถํฐ ์ฝ์ด ์ค๋ ์ญํ ์ ๋ด๋นํ๋ค.
MyISAM ํ ์ด๋ธ์ ์กฐ์ํ๋ ๊ฒฝ์ฐ์๋ ํธ๋ค๋ฌ๊ฐ MyISAM ์คํ ๋ฆฌ์ง ์์ง์ด ๋๊ณ , InnoDB ํ ์ด๋ธ์ ์กฐ์ํ๋ ๊ฒฝ์ฐ์๋ ํธ๋ค๋ฌ๊ฐ InnoDB ์คํ ๋ฆฌ์ง ์์ง์ด ๋๋ค.
โญ MySQL์์ ์ฟผ๋ฆฌ๊ฐ ์คํ๋๋ ๊ณผ์ ์ ๊ฑฐ์ ๋๋ถ๋ถ์ ์์ ์ด MySQL ์์ง์์ ์ฒ๋ฆฌ๋๊ณ , ๋ง์ง๋ง '๋ฐ์ดํฐ ์ฝ๊ธฐ/์ฐ๊ธฐ' ์์ ๋ง ์คํ ๋ฆฌ์ง ์์ง์ ์ํด ์ฒ๋ฆฌ๋๋ค. โญ
ํด๋น ๊ธ์
๋ฐฑ์๋น, ์ด์ฑ์ฑ ๋์ 'Real MySQL 8.0',
์ฐ๊ธฐ ๋์ '[10๋ถ ํ ์ฝํก] ์ฐ๊ธฐ์ MySQL ์ํคํ ์ฒ',
๋ฆญ ๋์ '[10๋ถ ํ ์ฝํก] ๋ฆญ์ MySQL ์ํคํ ์ฒ',
ShardingSphere์ 'Parse Engine'
์ ์ฐธ๊ณ ํ์์ต๋๋ค.
'๐ ๋ฐ์ดํฐ๋ฒ ์ด์ค > ๊ฐ๋ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
B-Tree ์ธ๋ฑ์ค - (1) (0) | 2023.07.03 |
---|---|
ํธ๋์ญ์ ์ ๊ฒฉ๋ฆฌ ์์ค (Transaction Isolation Level) (1) | 2023.06.18 |
ํธ๋์ญ์ (Transaction) (0) | 2023.06.17 |
[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค ํค(Key) ๊ฐ๋ & ํค(Key) ์ข ๋ฅ (0) | 2023.06.13 |
์๋ธ์ฟผ๋ฆฌ(Subquery) (0) | 2023.04.18 |