๊ธ๋ก๋ฒ ๋ณ์์ ์ธ์ ๋ณ์
RealMySQL 8.0์ ์ฝ๊ณ ์ ๋ฆฌํ์ต๋๋ค. DBMS Variables ๋น๊ต ํ์ด์ง๋ฅผ ๋ง๋ค ๋ ๊ธ๋ก๋ฒ์ธ์ง ์ธ์ ์ธ์ง ๋ํด์ ๊ตฌ๋ถํ ์ผ๋ ์๊ณ ํ๋๋ฐ,, ์ด๋ฒ ๊ธฐํ์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค. MySQL์ ์์คํ ๋ณ์๋ ์ ์ฉ ๋ฒ์์ ๋ฐ๋ผ ๊ธ๋ก๋ฒ ๋ณ์์ ์ธ์ ๋ณ์๋ก ๋๋๋ค. ๊ธ๋ก๋ฒ ๋ณ์ MySQL ์๋ฒ ์ธ์คํด์ค์์ ์ ์ฒด์ ์ผ๋ก ์ํฅ์ ๋ฏธ์น๋ ์์คํ ๋ณ์ MySQL ์๋ฒ ์์ฒด์ ๊ด๋ จ๋ ์ค์ ์ผ ๋๊ฐ ๋ง์ MySQL ์๋ฒ์์ ๋จ ํ๋๋ง ์กด์ฌ innodb_buffer_pool_size : InnoDB ๋ฒํผ ํ ํฌ๊ธฐ key_buffer_size : MyISAM์ ํค ์บ์ ํฌ๊ธฐ ์ธ์ ๋ณ์ MySQL ํด๋ผ์ด์ธํธ๊ฐ MySQL ์๋ฒ์ ์ ์ํ ๋ ๊ธฐ๋ณธ์ผ๋ก ๋ถ์ฌํ๋ ์ต์ ์ ๊ธฐ๋ณธ๊ฐ์ ์ ์ดํ๋ ๋ฐ ์ฌ์ฉ ํด๋ผ์ด์ธํธ์ ํ์์ ๋ฐ๋ผ ๊ฐ๋ณ ์ปค๋ฅ์ ..
Percona Toolkit์ด๋?
MySQLDBA ์ด์๊ต์ก์์ ํผ์ฝ๋ ํดํท์ ๋ํด ์ ํ๊ฒ ๋์๋ค. ์ด๋ค ๊ธฐ๋ฅ์ ํ๋ ํด์ธ์ง ์์๋ณด์! Percona Toolkit Percona ์ฌ์์ ์ ์ํ Toolkit ์ผ๋ก์ DB์ ์ฑ๋ฅ ์ถ์ด, Disk ์ฌ์ฉ๋, DB ๋ด ํต๊ณ์ ๋ณด๋ฅผ ์ ๋ฆฌํ์ฌ ์ฝ๊ฒ ๋ณด์ฌ์ฃผ๋ tool ๊ธฐ๋ฅ ๋ณ๋ก ์คํฌ๋ฆฝํธ๊ฐ ๊ตฌ์ฑ๋์ด ์์ (์์น: /db/mysql/util/ptkit/bin) ์๋ ๊ณต์ ์ฌ์ดํธ๋ฅผ ๋ณด๋ฉด ๋ค๋ฅธ DBMS์ ๋ํด์๋ ์ง์ํ๋ ๊ฒ ๊ฐ์๋ฐ ์ฐ๋ฆฌ ํ์์๋ ๋ด๊ฐ ์๋ ํ์์๋ ์ผ๋จ MySQL ์ด์์์ ์ฌ์ฉํ๊ณ ์๋ค. https://percona.com/ Open Source Database Software Support & Services | Percona Percona delivers enterprise-class su..
RealMySQL 8.0 | 5์ฅ ํธ๋์ญ์ ๊ณผ ์ ๊ธ
RealMySQL 8.0 ์ ์ฝ๊ณ ์ ๋ฆฌํ์ต๋๋ค. ๋ชฉ์ฐจ ํธ๋์ญ์ MySQL ์์ง์ ์ ๊ธ InnoDB ์คํ ๋ฆฌ์ง ์์ง ์ ๊ธ MySQL์ ๊ฒฉ๋ฆฌ ์์ค ํธ๋์ญ์ (Transaction) ์์ ์ ์์ ์ฑ์ ๋ณด์ฅํด ์ฃผ๋ ๊ฒ 100% : ๋ชจ๋ ์๋ฒฝํ๊ฒ ์ฒ๋ฆฌํ๊ฑฐ๋ 0% : ์ฒ๋ฆฌํ์ง ๋ชปํ ๊ฒฝ์ฐ์๋ ์ ์ํ๋ก ๋ณต๊ตฌํด์ ์์ ์ ์ผ๋ถ๋ง ์ ์ฉ๋๋ ํ์(Partial update)์ ๋ฐฉ์ง ์ ๊ธ(Lock) ๐ค ์ ๊ธ ์์ด ์ฌ๋ฌ ์ปค๋ฅ์ ์ด ํ๋์ ๋ฐ์ดํฐ๋ฅผ ๋์์ ๋ณ๊ฒฝํ๋ค๋ฉด? ๊ทธ ๋ฐ์ดํฐ์ ๊ฐ์ ์์ธกํ ์ ์๊ฒ ๋ฉ๋๋ค. ์ฆ, ์ฌ๋ฌ ์ปค๋ฅ์ ์์ ๋์์ ๋์ผํ ์์์ ์์ฒญํ ๊ฒฝ์ฐ ์์๋๋ก ํ ์์ ์๋ ํ๋์ ์ปค๋ฅ์ ๋ง ๋ณ๊ฒฝํ ์ ์๋๋ก ๋์์ฑ์ ์ ์ดํ๋ ์ญํ ํธ๋์ญ์ : ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ๊ธฐ๋ฅ ์ ๊ธ : ๋์์ฑ์ ์ ์ดํ๊ธฐ ์ํ ๊ธฐ๋ฅ ๊ฒฉ๋ฆฌ ์..
ํด๋ฌ์คํฐ ํ ์ด๋ธ๊ณผ ๋ ผํด๋ฌ์คํฐ ํ ์ด๋ธ
ํด๋ฌ์คํฐ ํ ์ด๋ธ vs ๋ ผํด๋ฌ์คํฐ ํ ์ด๋ธ ๋น๊ต ํด๋ฌ์คํฐ๋? ๋์คํฌ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ์๊ฐ์ ์ค์ด๊ธฐ ์ํด์ ์์ฃผ ์ฌ์ฉ๋๋ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ๊ฐ์ ์์น์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ ๋น์ทํ ๋ ์ฝ๋๋ค์ ๋์์ ์กฐํํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ํจ์จ์ ์ผ๋ก ์กฐํํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ณ ์๋จ PK๊ฐ ๋น์ทํ ๋ ์ฝ๋๋ผ๋ฆฌ ๋ฌถ์ด์ ์ ์ฅํ๋ ๊ฒ (MySQL) ํด๋ฌ์คํฐ ํ ์ด๋ธ(์ธ๋ฑ์ค) ํ ์ด๋ธ๋น 1๊ฐ์ฉ๋ง ํ์ฉ๋จ PK ์์ฑ ์ ๊ทธ ์ปฌ๋ผ์ ์๋์ผ๋ก ํด๋ฌ์คํฐ ์ธ๋ฑ์ค๊ฐ ์์ฑ๋จ * ์ผ๋ฐ ์ธ๋ฑ์ค์์ ์ฐจ์ด ํด๋ฌ์คํฐ๋ง ๋์ด ์๋ค๋ ์์๊ฐ ์ถ๊ฐ๋จ ์ตํฐ๋ง์ด์ ์์ ์ผ๋ฐ ์ธ๋ฑ์ค๋ณด๋ค ๋์ ๋ญํน PK๋ฅผ ์ค์ ํ์ง ์์ ๊ฒฝ์ฐ๋? InnoDB๊ฐ ๋ค์์ ์ฐ์ ์์๋๋ก ๋์ฒด ์ปฌ๋ผ์ ์ ํ UNIQUE NOT NULL ์ค ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ํด๋ฌ์คํฐ ํค๋ก ์ ํ ์๋์ผ๋ก ์ ๋ํฌํ ๊ฐ์ ๊ฐ์ง๋๋ก..
[MySQL] Transaction Isolation Level๊ณผ Lock
Transaction์ ํน์ฑ ํธ๋์ญ์ ์ DBMS์์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๋ ์ต์ํ์ ์์ (unit of work) ํธ๋์ญ์ ์ ์๋์ 4๊ฐ์ง ํน์ฑ์ธ ACID๋ฅผ ๋ณด์ฅํด์ผ ํ๋ค. ์์์ฑ(Atomicity) ์ผ๊ด์ฑ(Consistency) ๊ฒฉ๋ฆฌ์ฑ(Isolation) ์ง์์ฑ(Durability) Transaction Isolation Level ๊ทธ๋ฐ๋ฐ ACID๋ฅผ ์๊ฒฉํ๊ฒ ์งํค๋ค ๋ณด๋ฉด ๋์์ฑ(Concurrency)๊ฐ ๋งค์ฐ ๋จ์ด์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค. ๊ทธ๋์ DB ์์ง์ ACID๋ฅผ ํฌ์ํด์ ๋์์ฑ์ ์ป์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋๋ฐ ๊ทธ๊ฒ์ด ๋ฐ๋ก ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ๋ ๋ฒจ์ด๋ค. ๊ฒฉ๋ฆฌ์ฑ์ ๋ ์งํค๋ level์ ์ฌ์ฉํ ์๋ก ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ์ปค์ง์ง๋ง ๋์์ ๋ ๋์ ๋์์ฑ์ ์ป์ ์ ์๋ค. ์ผ๊ด์ฑ(Consistency)์ ๋์์ฑ(Concur..
[MySQL] SSL ๋ณด์ ์ ์๋ฐฉ๋ฒ
โ ๊ณต์๋ฌธ์ 4.4.3 mysql_ssl_rsa_setup — SSL/RSA ํ์ผ ์์ฑ 6.3.3.1 MySQL์ ์ฌ์ฉํ์ฌ SSL ๋ฐ RSA ์ธ์ฆ์ ๋ฐ ํค ์์ฑ SSL์ด๋? 1994๋ Nescape ์ฌ์์ ๊ฐ๋ฐํ ๋ณด์๊ธฐ์ ๋ก Secure Sockets Layer์ ์ฝ์์ด๋ค. ํ์ฌ๋ ํ์ค ๋ณด์๊ธฐ์ ๋ก ์ฌ์ฉ๋๊ณ ์์ผ๋ฉฐ SSL์ ์ฌ์ฉ์ ์ค๋ํ๊ณผ ํผ์ฑ์ ๋ฐฉ์งํ ์ ์๋ค. SSL/RSA ํ์ผ ์์ฑ MySQL ์ค์น์ ๋ฒ์ ๋ณ๋ก SSL ํ์ ์ฌ๋ถ๊ฐ ๋ฌ๋ผ์ง๋ค. SSL์ ์ฌ์ฉํ๋ ๋ณด์ ์ฐ๊ฒฐ์ ์ง์ํ๊ณ , ์ํธํ๋์ง ์์ ์ฐ๊ฒฐ์์ RSA๋ฅผ ์ฌ์ฉํ๋ ๋ณด์ ์ํธ ๊ตํ์ ์ง์ํ๋๋ฐ ํ์ํ SSL ์ธ์ฆ์ ๋ฐ ํค ํ์ผ๊ณผ RSA ํค ์ ํ์ผ์ ์์ฑํ๋ค(ํด๋น ํ์ผ์ด ์๋ ๊ฒฝ์ฐ). ๊ธฐ์กด SSL ํ์ผ์ด ๋ง๋ฃ๋ ๊ฒฝ์ฐ ์ SSL ํ์ผ์ ์์ฑํ ์ ..
[MySQL] InnoDB ๋ฒํผ ํ์ ๋ํด์
Buffer Pool InnoDB ๋ฒํผ ํ์ InnoDB์์ ๊ฐ์ฅ ํต์ฌ์ ์ธ ๋ถ๋ถ MySQL ์ฑ๋ฅ ํ๋์ ์ค์ํ ์ธก๋ฉด innodb_buffer_pool_size๋ก ์ค์ ํ๊ณ , ์ ์ฒด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ 50~80% ์์ค์ผ๋ก ์ค์ ๋ฒํผ ํ ๋ฉ๋ชจ๋ฆฌ๋ ํ์ด์ง๊ณผ ์บ์ ํจ์จ์ฑ์ ์ํด LRU ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๋ฆฌ์คํธ ํํ ์ธ๋ฑ์ค ์ค๊ณ์ ์ ๋์ด ์์ง๋ง ์ฌ๋ก์ฐ ์ฟผ๋ฆฌ๊ฐ ํด๊ฒฐ๋์ง ์๋๋ค๋ฉด ์ด ๋ถ๋ถ์ ์์ฌํด ๋ด์ผ ํ๋ค. ์ฌ์ฉ๋๊ณ ์๋ ์ํ ํ์ธ ์ฟผ๋ฆฌ SHOW STATUS LIKE '%innodb_buffer_pool%'; innodb_buffer_pool_size ๋ฒํผ ํ์ ํฌ๊ธฐ๊ฐ ํด์๋ก ์ฑ๋ฅ์ ์ ๋ฆฌํจ ๋ฒํผ ํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถฉ๋ถํ ํฐ ์์ผ๋ก ํ ๋น๋์ด ์๋ค๋ฉด innodb๋ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ฒ๋ผ ๋์ ๋์คํฌ์ ๋ฐ์ดํฐ ํ์ผ์ด๋ ์ธ๋ฑ์ค ..
RealMySQL 8.0 | 4.2 InnoDB ์คํ ๋ฆฌ์ง ์์ง ์ํคํ ์ฒ
RealMySQL 8.0 ์ ์ฝ๊ณ ์ ๋ฆฌํ์ต๋๋ค. InnoDB ์คํ ๋ฆฌ์ง ์์ง ์ํคํ ์ฒ InnoDB → MySQL์ ์คํ ๋ฆฌ์ง ์์ง ๊ฐ์ด๋ฐ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๊ณ , ๊ฑฐ์ ์ ์ผํ๊ฒ ๋ ์ฝ๋ ๊ธฐ๋ฐ์ ์ ๊ธ์ ์ ๊ณตํ์ฌ ๋์์ฑ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ณ , ์์ ์ ์ด๋ฉฐ ๋ฐ์ด๋ ์ฑ๋ฅ ๊ตฌ์กฐ 4.2.1 ํ๋ผ์ด๋จธ๋ฆฌ ํค์ ์ํ ํด๋ฌ์คํฐ๋ง InnoDB์ ๋ชจ๋ ํ ์ด๋ธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ผ์ด๋จธ๋ฆฌ ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ํด๋ฌ์คํฐ๋ง ๋์ด ์ ์ฅ → ์ฆ, ํ๋ผ์ด๋จธ๋ฆฌ ํค ๊ฐ์ ์์๋๋ก ๋์คํฌ์ ์ ์ฅ๋์ด → ํ๋ผ์ด๋จธ๋ฆฌ ํค์ ์ํ ์ค์บ์ ์๋นํ ๋นจ๋ฆฌ ์ฒ๋ฆฌ๋จ ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฟผ๋ฆฌ์ ์คํ ๊ณํ์์ ํ๋ผ์ด๋จธ๋ฆฌ ํค๋ ๋ค๋ฅธ ๋ณด์กฐ ์ธ๋ฑ์ค์ ๋นํด ๋์ ๋น์ค์ผ๋ก ์ค์ InnoDB ํ ์ด๋ธ ๊ตฌ์กฐ = ์ค๋ผํด์ IOT(Index Organized Table) ๊ตฌ์กฐ 4.2.2 ์ธ๋ ํค ์ง์ Only In..
RealMySQL 8.0 | 4.1 MySQL ์์ง ์ํคํ ์ฒ
RealMySQL 8.0 ์ ์ฝ๊ณ ์ ๋ฆฌํ์ต๋๋ค. 4.1.1 ์ ์ฒด ๊ตฌ์กฐ MySQL ์๋ฒ = ์ฌ๋์ ๋จธ๋ฆฌ ์ญํ ์ ๋ด๋นํ๋ MySQL ์์ง + ์๋ฐ ์ญํ ์ ๋ด๋นํ๋ ์คํ ๋ฆฌ์ง ์์ง MySQL ์์ง ์ปค๋ฅ์ ํธ๋ค๋ฌ : ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ปค๋ฅ์ ๋ฐ ์ฟผ๋ฆฌ ์์ฒญ์ ์ฒ๋ฆฌ SQL ์ธํฐํ์ด์ค : DML, DDL, Procedure, View ๋ฑ SQL ์ธํฐํ์ด์ค ์ ๊ณต SQL ํ์ : SQL ๋ฌธ๋ฒ ์ค๋ฅ ํ์ง ๋ฐ SQL ์ฟผ๋ฆฌ ๋ฌธ์ฅ์ MySQL์ด ์ฒ๋ฆฌํ๊ธฐ ์ข์ ํ ํฐ ๋จ์๋ก ๋๋ ์ ํธ๋ฆฌ ํํ๋ก ํ์ฑํ๋ ์์ ๋ด๋น SQL ์ตํฐ๋ง์ด์ : ์ฟผ๋ฆฌ์ ์ต์ ํ๋ ์คํ์ ๋ด๋น ์บ์ & ๋ฒํผ : ์ฑ๋ฅ ํฅ์์ ์ํ ๋ณด์กฐ ์ ์ฅ์ ๊ธฐ๋ฅ ๋ด๋น ์คํ ๋ฆฌ์ง ์์ง ํธ๋ค๋ฌ API๋ฅผ ๋ง์กฑํ๋ฉด ๋๊ตฌ๋ ์ง ์คํ ๋ฆฌ์ง ์์ง์ ๊ตฌํํ์ฌ MySQL์ ์ถ๊ฐํ์ฌ ์ฌ์ฉํ ์ ์์ ์ค์ ..
[Error] bash: mysql: command not found ํ๊ฒฝ๋ณ์ ์ค์
๋ถ๋ช ์ค์น ์ ๋ผ์ ๋ฐ์ดํฐ ์ ์ถ๋ ฅ๊น์ง ํ๊ณ , ๋ค์ ์ผฐ๋๋ฐ mysql --version ๋ ์๋๊ณ ๊ทธ๋ฅ mysql ์ปค๋งจ๋๊ฐ ๋ค ์ ๋๋ค. ์๋ฌ๋ Error - bash: mysql: command not found ๋ผ๊ณ ๋ฌ๋ค. ๋ญ์ง ์ถ์ด์ ๊ตฌ๊ธ๋ง ์์ฒญ ํ๋๋ฐ ๊ฒ์ํ์ ๋ ๋ณดํต PATH์ ์ถ๊ฐํ๋ผ๊ณ ๋์ค๋ ๊ฒฝ๋ก๊ฐ ์๋๋ฐ ๋๋ mysql์ด ์ค์น๋ ๊ฒฝ๋ก๊ฐ ๋ฌ๋ผ์ ๋ง์ง ์์๋ค. ์ด๋ฐ ๊ฒฝ์ฐ ๋ณธ์ธ์ mysql์ด ์ด๋ ๊ฒฝ๋ก์ ์ค์น๋์ด ์๋์ง ํ์ธํด๋ณด๋๊ฑธ ์ถ์ฒํ๋ค. ์ฐธ๊ณ ) PATH์ ๋ฃ์ ๊ฒฝ๋ก๋ my.cnf ์ basedir ๊ฒฝ๋ก์ bin๋ง ์ถ๊ฐํ ๊ฒ๊ณผ ๊ฐ๋ค. ๐ง ์์ถํ์ผ๋ก ์ค์นํ์ ๋๋ง ๋ฌธ์ ๊ฐ ์์๊ณ , yum์ผ๋ก ์ค์นํ๊ฑฐ๋ ๋ฐ๋ก ์ค์ ์์ด๋ ์ ๋์ํ๋ค. ์์ผ๊น? โญ๏ธ ์ด ๊ณผ์ ์ ๊ฑฐ์ณ์ผ mysql ์ปค๋งจ๋๋ฅผ ์ฌ์ฉํ ์ ์..