์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ์ํฐ๋ ๋ณ์ข ๊ฐ๋ฐ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฒฉ๋ฆฌ์์ค
- assert.notnull
- index full scan
- builder null
- hikari cp ์ค์
- ์๋ฐ์์์ฐ๋ ๋๋ฅผ ์ฌ์ฉํ๋ ์ด์
- ์๋ฐ์์
- ์๋ฐ์ฐ๋ ๋
- ๋น์ผ๊ฐ์ฒด์์ฑ
- ์์
- Item6
- item15
- ์ํฐ๋ ๊ฐ๋ฐ์ํ์ฌ
- ์ดํํฐ๋ธ์๋ฐ
- mysql
- ์ธ๋ฑ์คํ์ค์บ
- ์ธ๋ฑ์ค์คํต์ค์บ
- InnoDB์ํคํ ์ฒ
- ์๋ฐ๋ผ์ด๋ธ์คํฐ๋
- SVN
- enum ์์ฑ์ ์ ๊ทผ ์ ํ์
- Hikari Connection Pool
- effectiveJava
- ๋ฐ์ฉ๋ ์ค๊ตญ์ด
- index skip scan
- ์๋ฐ
- ์์ดํ 15
- ์๋ผ์คํฑ์์น๋ฉ์ธ์ง์ฉ๋
- mysql์ํคํ ์ฒ
- Today
- Total
๋ชฉ๋กDB/RDBMS (5)
โ๐ป๊ธฐ๋กํ๋ ๋ธ๋ก๊ทธ
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/OiApT/btrXnkIwgSR/AK7HvRPbM3WQJttIeG4Qm0/img.png)
B-Tree(B(Balanced)-Tree)๋? Database์์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ์๋ฃ๊ตฌ์กฐ ๊ตฌ์กฐ ๋ฐ ํน์ฑ RDBMS์์ btree์ ๋ณํ์ธ B+Tree, B*-Tree ์ ํ๋ ์ฌ์ฉ ์ธ๋ฑ์ค๋ ํ ์ด๋ธ์ ํค ์นผ๋ผ๋ง ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก ํค์นผ๋ผ์ ์ฝ์ด ์ค์ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ณณ์ ๊ฐ์ ์กฐํํด์ผ ํ๋ค. ์ต์์ Root Node ์ค๊ฐ Branch Node ํ๋จ(์ค์ ๋ฐ์ดํฐ ์ปฌ๋ผ์ ์ฐพ์๊ฐ๋ ์ฃผ์๊ฐ์ ๊ฐ์ง๊ณ ์์) Leaf Node B-Tree ์ธ๋ฑ์ค ํค ์ถ๊ฐ ๋ฐ ์ญ์ ์ธ๋ฑ์ค ํค ์ถ๊ฐ, ์ญ์ , ๋ณ๊ฒฝ ๋ฑ์ MySQL v5.5 ์ดํ (InnoDB์์ง) ์ฒด์ธ์ง ๋ฒํผ๋ฅผ ํตํด ์ง์ฐ ์ฒ๋ฆฌ ๊ฐ๋ฅ ์ธ๋ฑ์ค ํค ์ถ๊ฐ ์ ์ฅ๋ ํค ๊ฐ์ ์ด์ฉํด B-Tree๋ด๋ถ์ ์ ์ ํ ์์น ๊ฒ์ ์ ์ฅ๋ ์์น๊ฐ ์ ํด์ง๋ฉด ๋ฐ์ดํฐ์ ์์น๋ฅผ ๋ด๋ leaf Node์ ์ ..
ํธ๋์ญ์ Isolation์ค๋ช ์ ํ์ํ ์ฌ๋ฌ ์ฉ์ด๋ฅผ ๋จผ์ ์ ๋ฆฌํ์. Transaction ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ๊ธฐ๋ฅ db read, write์์ ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ฌถ๋ ๋ฐฉ์ ํธ๋์ญ์ ์ผ๋ก ๋ฌถ์ ์์ ์ด ์ฑ๊ณตํ๋ฉด commit, ์คํจ ์ rollback์ ํ๋ฏ๋ก ๋ถ๋ถ์ฑ๊ณต, ๋ถ๋ถ ์คํจ(Partial Update)์ ์ํ์ด ์์ Lock ๋์์ฑ์ ์ ์ดํ๊ธฐ ์ํ ๊ธฐ๋ฅ ์ฌ๋ฌ ์ปค๋ฅ์ ์์ ๋์์ ๋์ผํ ์์์ ์์ฒญํ ๊ฒฝ์ฐ ์์๋๋ก ํ๋์ ์ปค๋ฅ์ ๋ง ๋ณ๊ฒฝํ ์ ์๊ฒ ํ๋ ์ญํ Isolation level ๋์์ ํ๋ ๋๋ ์ฌ๋ฌ ํธ๋์ญ์ ์ด ์งํ ๋ ๋, ๋ค๋ฅธ ํธ๋์ญ์ ์์ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๊ธฐ์ค ์ผ๋ฐ์ ์ธ ์๋น์ค์์๋ Read Commited, Repeatable Read๋ฅผ ์ฌ์ฉ Transaction Isolation..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/epSCr2/btrUViT2PLE/HwVjgoAGGTp3dQdxOg1fk1/img.png)
1. InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ์ ๊ธ InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ์ธ๋ฑ์ค๋ก ๋ ์ฝ๋๋ฅผ ์ ๊ทผ๋ค. ๋ ์ฝ๋ ๋จ์์ ์ ๊ธ์ด ๊ฐ๋ฅํ๋ฉฐ, ๋ ์ฝ๋์ ๋ ์ฝ๋ ์ฌ์ด์ ๊ฐญ์ ์ ๊ทธ๋ ๋ฝ์ด ์กด์ฌ ๋ ์ฝ๋๋ฝ InnoDB์์ง์ ์ธ๋ฑ์ค์ ๋ ์ฝ๋๋ฅผ ์ ๊ทธ๋ฉฐ, ์ธ๋ฑ์ค๊ฐ ์์ฑ๋์ง ์์๋ InnoDB์์ง์์ ์๋์ผ๋ก ์์ฑ๋๋ ํด๋ฌ์คํฐ๋ง ์ธ๋ฑ์ค๋ฅผ ํตํด ๋ ์ฝ๋ ๋ฝ์ ์ํํ๋ค. ๊ฐญ๋ฝ ๋ ์ฝ๋์ ๋ค๋ฅธ ์ธ์ ํ ๋ ์ฝ๋ ์ฌ์ด๋ฅผ ์ ๊ทธ๋ฏ๋ก ์ฌ์ด์์ ๋ฐ์ดํฐ๊ฐ insert ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ค. ๋ฅ์คํธ ํค ๋ฝ ๋ ์ฝ๋ ๋ฝ + ๊ฐญ ๋ฝ ์๋ ์ฆ๊ฐ ๋ฝ(Auto Increment Lock) Auto Increment ์ปฌ๋ผ์ ๋์์ ์ฌ๋ฌ ์นผ๋ผ์ insert ์ ํ ์ด๋ธ ์์ค์ผ๋ก lock์ด ์กํ๋ค. insert์์๋ง auto increment ์์ ์ด ์ํ๋๋ฏ๋ก update, d..
MySQL ๋์์ฑ(์ฌ๋ฌ ์์ฒญ์ด ํ๋์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ)์ ์ํฅ์ ๋ฏธ์น๋ ์์๋ค์ ์ฉ์ด๋ฅผ ๋จผ์ ์ ๋ฆฌํ์. Transaction ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ๊ธฐ๋ฅ db read, write์์ ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ฌถ๋ ๋ฐฉ์ ํธ๋์ญ์ ์ผ๋ก ๋ฌถ์ ์์ ์ด ์ฑ๊ณตํ๋ฉด commit, ์คํจ ์ rollback์ ํ๋ฏ๋ก ๋ถ๋ถ์ฑ๊ณต, ๋ถ๋ถ ์คํจ(Partial Update)์ ์ํ์ด ์์ Lock ๋์์ฑ์ ์ ์ดํ๊ธฐ ์ํ ๊ธฐ๋ฅ ์ฌ๋ฌ ์ปค๋ฅ์ ์์ ๋์์ ๋์ผํ ์์์ ์์ฒญํ ๊ฒฝ์ฐ ์์๋๋ก ํ๋์ ์ปค๋ฅ์ ๋ง ๋ณ๊ฒฝํ ์ ์๊ฒ ํ๋ ์ญํ Isolation level ๋์์ ํ๋ ๋๋ ์ฌ๋ฌ ํธ๋์ญ์ ์ด ์งํ๋ ๋, ๋ค๋ฅธ ํธ๋์ญ์ ์์ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๊ธฐ์ค ์ผ๋ฐ์ ์ธ ์๋น์ค์์๋ Read Commited, Repeatable Read๋ฅผ ์ฌ์ฉ My..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/d6tMCn/btrSSKRU9Sp/SkKBBAUY2KQkhMhyImeYD1/img.png)
MySQL 5.5์ดํ๋ถํฐ InnoDB์์ง์ด ๊ธฐ๋ณธ์์ง์ผ๋ก ์ฑํ MySQL 5.5๊น์ง MySQL ์์คํ ํ ์ด๋ธ์ MyISAM MySQL 8.0์ดํ๋ถํฐ๋ ๋ชจ๋ InnoDB ์์ง ์ฌ์ฉ, MyISAM์์๋ง ์ ๊ณตํ๋ ์ ๋ฌธ๊ฒ์, ์ขํ๊ฒ์๋ InnoDB์์ ์ ๊ณต InnoDB ์คํ ๋ฆฌ์ง ์์ง ์ํคํ ์ฒ ๋ ์ฝ๋๋ฅผ PK ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ์ฌ ๋์คํฌ์ ๋ฐ์ดํฐ ์ ์ฅ PK๋ฅผ ํตํด์๋ง ๋ ์ฝ๋ ์ ๊ทผ ๊ฐ๋ฅ PK์ธ๋ฑ์ค ์๋ ์์ฑ PK๋ฅผ ํตํ ๋ฒ์ ๊ฒ์์ด ๋น ๋ฆ InnoDB๋ PK๋ฅผ ์ค์ ํ์ง ์์ผ๋ฉด ๋ด๋ถ์ ์ผ๋ก PK๋ฅผ ์๋ ์์ฑํ์ฌ ํด๋ฌ์คํฐ๋ง ๋จ, ์๋์ผ๋ก ์์ฑ๋ PK๋ ์ฌ์ฉ์๊ฐ ์ฌ์ฉ์ด ๋ถ๊ฐ MVCC(Multi Version Concurrency Control) Undo์์ญ์ ์ด์ฉํ์ฌ ํ๋์ ๋ ์ฝ๋์ ๋ํด ๋ค์ํ ๋ฒ์ ์ด ๊ด๋ฆฌ๋จ ๋ ์ฝ๋ ๋จ์์ ํธ๋์ญ..