๋ชฉ๋ก๐ (25)
DevLog ๐ถ
โ๏ธ ๊ฐ์ฒด ์ง๋ ํ๋ก๊ทธ๋๋จธ์ ๊ฐ์ฅ ํฐ ์์ ๋ '๋ณํํ๋ ์๊ตฌ์ฌํญ์ ์ผ๋ง๋ ๋ ์ ๋์ํ ์ ์๋๊ฐ?' ์ด๋ค. ์๋ฅผ ๋ค์ด๋ณด์. ๊ณ ์์ด ์ค๋ต๋ฐ์ ์๋ก์ด ์ ์ ์ ฐํ๋ฅ์ด ๋ค์ด์๋ค. ์ ์ ์ ฐํ๋ฅ์ ์์ง ๋ฉ๋ด ์์ง์ ๋ฏธ์ํด์ ๋ ์ํผ๋ฅผ ๋ค ์ธ์ฐ์ง ๋ชปํ๋ค. ์ด๋ ์๋๋ฅ์ด ์๋ฐ๋ฅ์๊ฒ ๋ธ๊ธฐ๋ผ๋ผ๋ฅผ ์ฃผ๋ฌธํ๊ณ , ์๋ฐ๋ฅ์ ์ ์ ์ ฐํ๋ฅ์๊ฒ ๋ธ๊ธฐ๋ผ๋ผ๋ฅผ ๋ง๋ค๋ผ๊ณ ์ง์ํ๋ค. ํ์ง๋ง ์ ์ ์ ฐํ๋ฅ์ ๋ธ๊ธฐ๋ผ๋ผ ๋ ์ํผ๋ฅผ ๋ชฐ๋ผ์ ์ด๋ป๊ฒ ํด์ผ ํ ์ง ๊ณ ๋ฏผ ์ค์ธ ์ํฉ์ด๋ผ๋ฉด, ์ด๋ค ํ์๋ฅผ ํ ์ ์์๊น? 1. ์์ ์ ฐํ๋ฅ์๊ฒ ๋ธ๊ธฐ๋ผ๋ผ ๋ง๋๋ ๋ฐฉ๋ฒ ๋ฌผ์ด๋ณด๊ธฐ 2. ๋ ์ํผ ๋ถ์ ์ฐธ๊ณ ํ์ฌ ๋ธ๊ธฐ๋ผ๋ผ ๋ง๋ค๊ธฐ ๋จผ์ , ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ๊ฒฝ์ฐ, ๋ง์ฝ ๋ธ๊ธฐ๋ผ๋ผ์ ๋ ์ํผ๋ฅผ ์ป์ ์๋ ์์ง๋ง, ๋ณํํ๋ ์๊ตฌ์ฌํญ์ ๋์ํ ์ ์๋ค. ๋ง์ฝ ์๋์ด ์ถ๊ฐ์ ์ผ๋ก ‘์, ๊ทผ๋ฐ ๋ธ๊ธฐ๋ผ๋ผ..
์๋ ์ ์ฑ ์ฝ์ผ๋ฉด์ ์์ฑํ๋ ๊ฑด๋ฐ ์ค๋๋ง์ ๊ธ ์ฌ๋ฆด ๊ฒธ... ์๋ฆฌ์ฆ ๋ง๋ฌด๋ฆฌ๋ ํ๋ฉด ์ข์ ๊ฒ ๊ฐ์์ ์ฌ๋ฆฌ๋ ค๊ณ ํ๋ค :D โ๏ธ ์์จ์ ์ผ๋ก ํ๋ํ๋ ๊ฐ์ฒด ์์ ์ฑํฐ์์ ๋ ๊ฐ์กฐํ๋ ๊ฒ์ฒ๋ผ, ๊ฐ์ฒด๋ ์์จ์ ์ผ๋ก ํ๋์ด ๊ฐ๋ฅํ๋ค. ์ด๋, ๊ฐ์ฒด๊ฐ ํ๋ํ๋ ์ ์ผํ ์ด์ ๋, ๋ค๋ฅธ ๊ฐ์ฒด๋ก๋ถํฐ ์์ฒญ์ ์์ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ฌ๊ธฐ์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๊ฐ์ฒด๊ฐ ์ํํ๋ ํ๋์ ‘์ฑ ์’์ด๋ผ๊ณ ํ๋ฉฐ, ์์จ์ ์ธ ๊ฐ์ฒด๋ ์ค์ค๋ก์ ์์ง์ ํ๋จ์ ๋ฐ๋ผ์ ๊ฐ์ ๋งก์ ์ฑ ์์ ์ํํ๋ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ค. ๊ฐ์ฒด๊ฐ ์์ ์ ์์ง์ ๋ฐ๋ผ์ ์ฑ ์์ ์์จ์ ์ผ๋ก ์ํํ๋ค๋ ๊ฒ ๋ฌด์์ ์๋ฏธํ๋ ๊ฑธ๊น? ์ฝ๊ฒ ์๊ฐํ๊ธฐ ์ํด ๋ค์ ๊ณ ์์ด ์ค๋ต๋ฐ ์์ ๋ฅผ ๊บผ๋ด๋ณด์. ๊ณ ์์ด ์ค๋ต๋ฐ์ ์ธ๊ธฐ๊ฐ ํญ๋ฐํ๋ฉด์ ์์นจ๋ถํฐ ๋ง์ ์๋ฃ ์ ์กฐ ์์ฒญ์ด ๋ค์ด์๋ค. ์ด๋ ์๋ฐ๋ฅ์ ์ ฐํ๋ฅ์๊ฒ ‘..
๐ฑ ๋์คํฌ ์ฝ๊ธฐ ๋ฐฉ์ ๐ฌ HDD (ํ๋ ๋์คํฌ ๋๋ผ์ด๋ธ) / SSD (์๋ฆฌ๋ ์ค๋ ์ดํธ ๋๋ผ์ด๋ธ) ๋ฉ๋ชจ๋ฆฌ์ ๋นํด ์ค์ ํ๋์จ์ด ์ฅ์น์ ๋ฐ์ ์ ๋น๊ต์ ๋๋ฆฌ๊ฒ ๋ฐ์ ํ๋ค๋ ์๋ฆฌ๋ฅผ ๋ค์ ์ ์ด ์์ ๊ฒ์ด๋ค. ํนํ HHD๋ ํ๋ํฐ(์ํ)์ ๋๋ ค์ ์ฝ๊ณ ๋ ์ฐ๋ค ๋ณด๋ ์ฑ๋ฅ์ด ๋งค์ฐ ๋๋ฆด ์๋ฐ์ ์๋ค. ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ๋ฑ์ฅํ SSD์ ๊ฒฝ์ฐ ๊ธฐ์กด ํ์คํฌ ๋๋ผ์ด๋ธ์์ ๋ฐ์ดํฐ ์ ์ฅ์ฉ ํ๋ํฐ(์ํ)์ ์ ๊ฑฐํ๊ณ ๊ทธ ๋์ ํ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฅ์ฐฉํด์ ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ธ ์ ์๋ค. ํ๋์ ๋ฉ๋ชจ๋ฆฌ๋ ์ ์์ด ์์ด๋ ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋์ง ์์ผ๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค๋ ๋๋ฆฌ์ง๋ง ๊ทธ๋๋ ํ๋ ๋์คํฌ ๋๋ผ์ด๋ธ๋ณด๋ค๋ ํจ์ฌ ๋น ๋ฅด๋ค. ๐ฌ ๋๋ค I/O์ ์์ฐจ I/O ๋์คํฌ ์ฝ๊ธฐ ์ฐ์ฐ์์ '๋๋ค I/O'์ '์์ฐจ I/O'๋ผ๋ ๋ง์ ๋ค์ ์ ์ด ์์ ๊ฒ์ด๋ค. ๋๋ค ..
๐ฑ ๋ค์ด๊ฐ๊ธฐ ์ ์ด๋ฒ ํฌ์คํ ์์๋ InnoDB์ ์ธ๋ฑ์ค์ ๋ฝ์ ์๊ด๊ด๊ณ์ ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค์ ๋ํด์ ์์๋ณด์. ๐ฑ ์ธ๋ฑ์ค์ ๋ฝ์ง๋ ํฌ์คํ ์์ ๋ ์ฝ๋ ๋ฝ์ ๋ํด ์ ๋ฆฌํ ๋ ๋ค์๊ณผ ๊ฐ์ ๋ฉํธ๋ฅผ ๋จ๊ฒผ๋ค.innoDB์ ๊ฒฝ์ฐ ๋ ์ฝ๋ ์์ฒด๋ฅผ ์ ๊ทธ๋ ๊ฒ๋ณด๋ค๋, ์ธ๋ฑ์ค์ ๋ ์ฝ๋๋ฅผ ์ ๊ทผ๋ค.์ธ๋ฑ์ค๋ฅผ ์ ๊ทธ๊ธฐ ๋๋ฌธ์ ๋ ์ฝ๋ ๊ฒ์ ์ ๋ฐ๊ฒฌ๋ ๋ชจ๋ ๋ ์ฝ๋์ ๋ฝ์ ๊ฑธ๊ฒ ๋๋ค. ์๋ฅผ ๋ค์ด, crew ํ ์ด๋ธ์ age = 23์ธ ์ฌ๋์ด 100๋ช ์ด๋ผ๊ณ ์๊ฐํด๋ณด์. ์ด๋, age์๋ ์ธ๋ฑ์ค๊ฐ, name์๋ ์ธ๋ฑ์ค๊ฐ ๊ฑธ๋ ค์์ง ์์ ์ํ๋ค.SELECT COUNT(*) FROM crew WHERE age = 23; # result: 100 ํ์ง๋ง, age = 23์ด๋ฉด์ name = 'journey'์ธ ๊ฒฐ๊ณผ๋ 1๊ฐ๋ง ๋์จ๋ค๊ณ ๊ฐ์ ํด๋ณด์.SELEC..
๐ฑ ๋ค์ด๊ฐ๊ธฐ ์ ์ด๋ฒ ํฌ์คํ ์์๋ ํธ๋์ญ์ ์ ๋ํ ๊ฐ๋จํ ๊ฐ๋ ๊ณผ, MySQL๊ณผ InnoDB ์คํ ๋ฆฌ์ง์์ง์์ ์ ๊ณตํ๋ ๋ฝ์ ๋ํด์ ์์๋ณด์. ๐ฑ ํธ๋์ญ์ ํธ๋์ญ์ ์ ํ๋์ ๋ ผ๋ฆฌ์ ์ธ ์์ ์ ์ ์์ ํ ์ ์ฉ(commit)๋๊ฑฐ๋, ์๋ฌด๊ฒ๋ ์ ์ฉ๋์ง ์์ (rollback)์ ๋ณด์ฅํด์ผ ํ๋ค. InnoDB์ MyISAM ํ ์ด๋ธ์ ํธ๋์ญ์ ๊ด์ ์์๋ ์ฐจ์ด๋ฅผ ๋ณด์ด๋๋ฐ, ์ด๋ฅผ ํ์ธํด๋ณด์. ์ฐ์ , ์๋์ ๊ฐ์ด myISAM๊ณผ innoDB๋ฅผ ์ฌ์ฉํ 2๊ฐ์ ํ ์ด๋ธ์ ๋ง๋ค์.CREATE TABLE tb_myisam ( id INT NOT NULL, PRIMARY KEY (id) ) ENGINE=MYISAM; CREATE TABLE tb_innodb ( id INT NOT NULL, PRIMARY KEY (id) ) ENGINE=i..
๐ฑ ๋ค์ด๊ฐ๊ธฐ ์ ์ด๋ฒ ํฌ์คํ ์์๋ InnoDB์ ์ ๋ฐ์ ์ธ ์ํคํ ์ฒ ์ค์์ ๋์คํฌ ์์ญ์ ๋ํด์ ์์๋ณด์. ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ๋จํ๊ฒ๋ง ์ง๊ณ ๋์ด๊ฐ๊ณ ์ ํ๋ค. ๐ฑ Tablespaceํ ์ด๋ธ ์คํ์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํฐ ๋ ผ๋ฆฌ์ ์ธ ๋จ์์ด๋ฉฐ, Segment -> Extent -> Page -> Row์ ๊ฐ์ ํํ๋ก ๊ตฌ์ฑ๋๋ค. MySQL์์ ํ ์ด๋ธ ์คํ์ด์ค๋ ์ ์ฅํ๋ ๋ฐ์ดํฐ์ ์ข ๋ฅ์ ๋ฐ๋ผ์ 5๊ฐ์ง๋ก ๋ถ๋ฅ๊ฐ ๊ฐ๋ฅํ๋ฐ, ์ด๋ ๋ค์๊ณผ ๊ฐ๋ค. - System tablespace - File-Per-Table tablespace - General Tablespace - Temporary Tablespace - Undo Tablespace ๐ฑ System tablespaceSystem tablespace์ ๊ฒฝ์ฐ My..
๐ฑ ๋ค์ด๊ฐ๊ธฐ ์ ์ด๋ฒ ํฌ์คํ ์์๋ InnoDB์ ์ ๋ฐ์ ์ธ ์ํคํ ์ฒ ์ค์์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ํด์ ์์๋ณด์. ์๋นํ ๋ณต์กํ๊ธฐ ๋๋ฌธ์ ๋๋ต์ ์ธ ๋ด์ฉ๋ง ์ดํดํ๊ณ ๋์ด๊ฐ๋ ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํ๋ค. ๐ฑ InnoDB ๋ฒํผ ํ (Buffer Pool)์ ๊ทธ๋ฆผ์ MySQL 8.0 ๊ธฐ์ค InnoDB ๊ตฌ์กฐ๋ฅผ ๋ํ๋ธ ๊ทธ๋ฆผ์ด๋ค. ์ด์ค์์ ๋ฒํผ ํ์ ๊ฒฝ์ฐ InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ๊ฐ์ฅ ํต์ฌ์ ์ธ ๋ถ๋ถ์ด๋ค. ๋์คํฌ์ ๋ฐ์ดํฐ ํ์ผ, ์ธ๋ฑ์ค ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์บ์๋ ํด๋ ์ ์๊ณ , ์ฐ๊ธฐ ์์ ์ ์ง์ฐ์์ผ์ ์ผ๊ด ์ฒ๋ฆฌ๋ ๊ฐ๋ฅํ๋ค.๐ก ๊ทธ๋ ๋ค๋ฉด ํฌ๊ธฐ๋ ์ด๋ ์ ๋๋ก ์ค์ ํด์ผ ํ ๊น? ๋ณดํต OS ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด 8๊ธฐ๊ฐ ์ดํ๋ผ๋ฉด 50% ์ ๋๋ง ๋ฒํผ ํ๋ก ์ค์ ํ๊ณ , ๋๋จธ์ง๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ ๊ณต๊ฐ์ผ๋ก ๋จ๊ฒจ๋๋ ๊ฒ์ด ์ข๋ค. ๋ง์ฝ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ ..
๐ฑ InnoDB ์คํ ๋ฆฌ์ง ์์ง ์ํคํ ์ฒMySQL์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ์คํ ๋ฆฌ์ง ์์ง์ธ 'InnoDB'์ ๋ํ ์ํคํ ์ฒ๋ฅผ ์์๋ณด์.๊ทธ๋ฆผ์ด ๋ณต์กํ๊ธฐ๋ ํ์ง๋ง, ์ผ์ชฝ์ ์ด์ ์ ๋ดค๋ MySQL ์์ง์ด๊ณ , ์ค๋ฅธ์ชฝ์ด InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ๊ตฌ์ฑ๋์ด๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ innoDB ์คํ ๋ฆฌ์ง ์์ง์ ํน์ง์ ๋ํด์ ์์๋ณด๋๋ก ํ์. 1. PK์ ์ํ ํด๋ฌ์คํฐ๋ง๊ธฐ๋ณธ์ ์ผ๋ก InnoDB์ ๋ชจ๋ ํ ์ด๋ธ์ PK๋ฅผ ๊ธฐ์ค์ผ๋ก ํด๋ฌ์คํฐ๋ง๋์ด ์ ์ฅ๋๋ค. ์ฌ๊ธฐ์ ํด๋ฌ์คํฐ๋ง๋๋ค๋ ๊ฒ์, PK ๊ฐ์ด ๋น์ทํ ๋ ์ฝ๋๋ผ๋ฆฌ ๋ฌถ์ด์ ์ ์ฅํ๋ ๊ฒ์ ์๋ฏธํ๋ค. PK ๊ฐ์ด ๋ ์ฝ๋์ ์ ์ฅ ์์น๋ฅผ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ ์ ์คํ๊ฒ ๊ฒฐ์ ํด์ผ ํ๋ค. ์ผ๋ฐ์ ์ธ DBMS์์ ์ธ์ปจ๋๋ฆฌ ์ธ๋ฑ์ค์ ๋ฆฌํ ๋ ธ๋์๋ ๋ฐ์ดํฐ์ ์ค์ง์ ์ธ ๋ฌผ๋ฆฌ ์ฃผ์๊ฐ ๋ค์ด๊ฐ์, ํด๋น ์ธ๋ฑ์ค์ ๋ฐ์ด..
๐ฑ MySQL ์ ์ฒด ๊ตฌ์กฐMySQL ์๋ฒ๋ ํฌ๊ฒ MySQL ์์ง๊ณผ ์คํ ๋ฆฌ์ง ์์ง์ผ๋ก ๋๋ ์ ์๋ค. MySQL ์์ง์ ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ ์ํ๊ณ , ์ฟผ๋ฆฌ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์ปค๋ฅ์ ํธ๋ค๋ฌ์ SQL ํ์, ์ต์ง๋ง์ด์ ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ์ฟผ๋ฆฌ ๊ด๋ จ ์ฒ๋ฆฌ๋ ์ด๊ณณ์์ ํ๊ธฐ ๋๋ฌธ์, ๊ฑฐ์ '๋๋'์ ๊ฐ์ ์ญํ ์ ํ๋ฉด ๋๋ค๊ณ ์๊ฐํ์. ์คํ ๋ฆฌ์ง ์์ง์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์ค์ ๋์คํฌ์ ์ ์ฅํ๊ฑฐ๋, ํน์ ๋์คํฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ์์ ์ ํ๋ฉฐ ํ๋์ MySQL ์๋ฒ๋ ์ฌ๋ฌ ๊ฐ์ ์คํ ๋ฆฌ์ง ์์ง์ ์ฌ์ฉํ ์ ์๋ค. MySQL ์์ง๊ณผ ์คํ ๋ฆฌ์ง ์์ง์ ์๋ก 'ํธ๋ค๋ฌ API'๋ผ๋ ๊ฒ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ, ์ด๋ ์ ๋์ ๋ฐ์ดํฐ ์์ ์ด ์ผ์ด๋ฌ๋์ง ํ์ธํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ด ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋ค. show global s..
โ๏ธ ์ญํ , ์ฑ ์, ํ๋ ฅ (๊ธฐ์ต์์ ์ํ์ก๊ฒ ์ง๋ง) 1์ฅ์์ ์ธ๊ธํ์๋ ์์ ๋ฅผ ๋ค์ ๊ฐ์ ธ์๋ณด์. ์๋๋ฅ์ด ์นดํ์์ ์ปคํผ๋ฅผ ์ฃผ๋ฌธํ๊ธฐ๊น์ง ๋ค์๊ณผ ๊ฐ์ ์์ฒญ๊ณผ ์๋ต์ด ์ด๋ฃจ์ด์ง๋ค. 1. ์๋๋ฅ์ ์๋ฐ๋ฅ์๊ฒ ์ปคํผ๋ฅผ ์์ฒญํ๋ค. 2. ์๋ฐ๋ฅ์ ์ ฐํ๋ฅ์๊ฒ ์ปคํผ๋ฅผ ๋ง๋ค ๊ฒ์ ์์ฒญํ๋ค. 3. ์์ฒญ์ ๋ฐ์ ์ ฐํ๋ฅ์ ์ปคํผ๋ฅผ ๋ง๋ค๊ธฐ ์์ํ๋ฉด์ ์๋ตํ๋ค. ์ด๋ ์๋๋ฅ์ ์ปคํผ ์ฃผ๋ฌธ์ ๋ํ ์๋ต์ด๊ธฐ๋ ํ๋ค. 4. ๋ง๋ ์ปคํผ๋ฅผ ์๋ฐ๋ฅ์ด ๊ฑด๋ค๋ฐ์ ์๋๋ฅ์๊ฒ ์๋ตํ๋ค. ์ฌ๊ธฐ์ ์ ฐํ๋ฅ์ด ์ปคํผ๋ฅผ ๋ง๋ค๋ผ๋ ์์ฒญ์ ๋ฐ์ ์ ์๋ ์ด์ ๊ฐ ๋ฌด์์ด์์๊น? ์ ฐํ๋ฅ์ ๋ฐ๋ฆฌ์คํ ์๊ฒฉ์ฆ์ด ์๊ธฐ ๋๋ฌธ์ ์ปคํผ๋ฅผ ๋ง๋ค๋ผ๋ ์์ฒญ์ ๋ํด ์ ํฉํ๊ฒ ๋์ํ ์ ์์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ฐ์ฒด์งํฅ ์ธ๊ณ์์ ์ด๋ค ๊ฐ์ฒด๊ฐ ์ด๋ค ์์ฒญ์ ๋๋ตํ ์ ์๊ฑฐ๋ ์ ์ ํ ํ๋์ ํ ์๋ฌด๊ฐ ์๋ ๊ฒฝ..