๋ฐ์ํ CS/Database9 MySQL EXPLAIN ์คํ๊ณํ ๋ง์คํฐํ๊ธฐ(feat. RealMySQL 8.0) ๐ฏ MySQL EXPLAIN ์คํ๊ณํ ๋ง์คํฐํ๊ธฐ(feat. RealMySQL 8.0) ์คํ ๊ณํ(EXPLAIN) ์ด๋? ๋๋ถ๋ถ์ DBMS๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ , ๋น ๋ฅด๊ฒ ์ ์ฅ ๋ฐ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ฃผ๋ชฉ์ ์ด๋ค. ์ด๋ฌํ ๋ชฉ์ ์ ๋ฌ์ฑํ๊ธฐ ์ํด ์ฌ์ฉ์์ ์ฟผ๋ฆฌ๋ฅผ ์ตํฐ๋ง์ด์ ๊ฐ ์ต์ ์ผ๋ก ์ฒ๋ฆฌ๋ ์ ์๋๋ก ์ฟผ๋ฆฌ์ ์คํ ๊ณํ์ ์๋ฆฝํ ์ ์์ด์ผ ํ๋ค. ํ์ง๋ง ์ตํฐ๋ง์ด์ ๊ฐ ํญ์ ์ต์ ์ ์คํ ๊ณํ์ ๋ง๋ค์ด๋ผ ์ ์๋ ๊ฒ์ ์๋๋ฏ๋ก DBMS ์๋ฒ๋ ์ด๋ฌํ ๋ฌธ์ ์ ์ ๊ด๋ฆฌ์๋ ์ฌ์ฉ์๊ฐ ๋ณด์ํ ์ ์๋๋ก EXPLAIN ๋ช ๋ น์ผ๋ก ์ตํฐ๋ง์ด์ ๊ฐ ์๋ฆฝํ ์คํ ๊ณํ์ ํ์ธํ ์ ์๋ค. ํ ์คํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค: https://github.com/datacharmer/test_db ์คํ ๊ณํ ์๋ฏธ id SELECT ์ฟผ๋ฆฌ ๋ณ ๋ถ์ฌ๋๋ ์๋ณ์ ๊ฐ se.. 2023. 1. 7. [Spring Data MongoDB] - Auto Increment Sequence ์ด๊ธฐํํ๊ธฐ ๐ [Spring Data MongoDB] - Auto Increment Sequence ์ด๊ธฐํํ๊ธฐ ์๋ ํ์ธ์, ์ ๋ฒ ์๊ฐ์๋ Spring Data MongoDB์์ Auto Increment Sequence ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์์ต๋๋ค. ๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กด์ฌํ๋ ๊ฐ๋ค์ ์ ๊ฑฐํ๋ฉด์ Auto Increment ๊ฐ๋ ์ด๊ธฐํ ํด์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํ์์ต๋๋ค. MySQL์์๋ ๋จ์ ์ฟผ๋ฆฌ๋ฌธ์ผ๋ก Auto Increment๋ฅผ ์ด๊ธฐํ ํ ์ ์๋๋ฐ์, MongoDB์์๋ ๊ตฌ๊ธ๋ง์ ํด๋ด๋ ์๋ฃ๊ฐ ์ ๋์ค์ง ์์์ต๋๋ค.(๊ฒ์ ๋ฅ๋ ฅ์ด ๋ถ์กฑํด์...) ๋ฐ๋ผ์ ์ด๋ป๊ฒ ์ด๊ธฐํ๋ฅผ ํ ์ ์์์ง ๊ณ ๋ฏผ์ ํ๋ค๊ฐ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฐพ๊ฒ๋์๋๋ฐ์, ์๊ฐ์ธ๋ก ํจ์ฌ ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ ์ ์์ต๋๋ค. 1) Sequence ๋ฉ์๋๋ฅผ ์ฆ๊ฐ์.. 2021. 9. 11. [Spring Data MongoDB] Auto-Increment Sequence ๋ง๋ค๊ธฐ ๐ Spring Data MongoDB Auto-Increment Sequence ๋ง๋ค๊ธฐ ์๋ ํ์ธ์, ์ด๋ฒ ์๊ฐ์ ์ ๋ฆฌํ ๋ด์ฉ์ Spring Data MongoDB์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ๋ ๋ง๋ค ์๋์ผ๋ก ์ฆ๊ฐํ๋ ํ๋๋ฅผ ์์ฑํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ํด๋น ๊ธฐ๋ฅ์ MySQL์์์ AUTO INCREMENT์ ๋์ผํ๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค. โป Spring Data MongoDB์ ๊ฒฝ์ฐ ์ฒ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ํ๋ฆฐ ๋ด์ฉ์ด ์์ ์ ์์ต๋๋ค. Sequence Collection ์์ฑ package com.juhyun.shorturl.entity.sequence; import lombok.Getter; import lombok.Setter; import org.springframework.data.annotation.Id; .. 2021. 9. 10. [MySQL] - ํธ๋์ญ์ ์ ๊ฒฉ๋ฆฌ ์์ค(Isolation level) ๐ ๊ธ๋ 6๊ธฐ ํฌ์คํ 1. ๋ฏธ์น๋๋ก ๋์ ๋ 7์์ ํ๊ณ 2. ์ฌ์ฉ์๊ฐ ๊ฒ์๋ฌผ์ ์์ฑํ ๋์ ํธ๋์ญ์ ์ฒ๋ฆฌ 3. Spring AOP - (1) ํ๋ก์ ํจํด, ๋ฐ์ฝ๋ ์ดํฐ ํจํด 4. [MySQL] - ํธ๋์ญ์ ์ ๊ฒฉ๋ฆฌ ์์ค(Isolation level) 5. Spring AOP - (2) AOP ๊ฐ๋ ๋ฐ ์ค์ต 6. ์ธํ ๋ฆฌ์ ์ด(IntelliJ) - ๋๋ฒ๊น (Debugging) ํ๊ธฐ 7. [Java, ๋์์ธํจํด] - ์ฑ๊ธํด ํจํด(Singleton Pattern) 8. ์๊ฐ ์ฝ๋๋ฆฌ๋ทฐ Ver_0.1: ์ปค๋ฆฌ์ด ์ฑ์ฅ CODE ์ธ๋ฏธ๋ ์ ๋ฆฌ 9. ํฌ์คํธ๋งจ(API ํ ์คํธ) ํ์ฉํ๊ธฐ 10. ๋ป๊น์ 2021๋ ํ๊ณ ๐ MySQL ํธ๋์ญ์ ์ ๊ฒฉ๋ฆฌ ์์ค(Isolation level) ์๋ ํ์ธ์, ์ด๋ฒ ์๊ฐ์ ์ ๋ฆฌํ ๋ด์ฉ์ MySQL์์.. 2021. 9. 5. DBCP(DataBase Conncetion Pool), ์ปค๋ฅ์ ํ ์ด๋? ๐ DBCP(DataBase Connection Pool) ์๋ ํ์ธ์, ์ด๋ฒ์ ์ ๋ฆฌํ ๋ด์ฉ์ DBCP(๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ํ) ์ ๋๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด๋์ธ ์น ์ดํ๋ฆฌ์ผ์ด์ ์์, ์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ๋ผ Connection์ด ์์ฑ๋๋ค๋ฉด ์ ๋ง์ ์ฌ์ฉ์๊ฐ ์์ฒญ์ ํ์ ๋ ์๋ฒ์ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆฌ๊ฒ ๋ฉ๋๋ค. ์ด๋ฌํ ์ํฉ์ ์๋ฐฉํ๊ธฐ ์ํด ๋ฏธ๋ฆฌ ์ผ์ ๊ฐฏ์์ Connection์ ๋ง๋ค์ด Pool์ ์ ์ฅ์ ํ๊ณ , ์ฌ์ฉ์์ ์์ฒญ์ด ๋ฐ์ํ๋ฉด Connection์ ์ ๊ณตํ๊ณ ์ฌ์ฉ์์์ ์ฐ๊ฒฐ์ด ์ข ๋ฃ๋๋ค๋ฉด Pool์ ๋ค์ ๋ฐํํ์ฌ ๋ณด๊ดํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ฆ, Connection Pool์ ๋ํด ์ ๋ฆฌํ์๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ฌ๋ฌ ๊ฐ์ DB Connection์ ํ๋์ Pool์ ๋ชจ์๋๊ณ ๊ด๋ฆฌ DB ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ ๊ฐ ์์ฑ.. 2021. 8. 10. ์ฌ์ฉ์๊ฐ ๊ฒ์๋ฌผ์ ์์ฑํ ๋์ ํธ๋์ญ์ ์ฒ๋ฆฌ ๐ ๊ธ๋ 6๊ธฐ ํฌ์คํ 1. ๋ฏธ์น๋๋ก ๋์ ๋ 7์์ ํ๊ณ 2. ์ฌ์ฉ์๊ฐ ๊ฒ์๋ฌผ์ ์์ฑํ ๋์ ํธ๋์ญ์ ์ฒ๋ฆฌ 3. Spring AOP - (1) ํ๋ก์ ํจํด, ๋ฐ์ฝ๋ ์ดํฐ ํจํด 4. [MySQL] - ํธ๋์ญ์ ์ ๊ฒฉ๋ฆฌ ์์ค(Isolation level) 5. Spring AOP - (2) AOP ๊ฐ๋ ๋ฐ ์ค์ต 6. ์ธํ ๋ฆฌ์ ์ด(IntelliJ) - ๋๋ฒ๊น (Debugging) ํ๊ธฐ 7. [Java, ๋์์ธํจํด] - ์ฑ๊ธํด ํจํด(Singleton Pattern) 8. ์๊ฐ ์ฝ๋๋ฆฌ๋ทฐ Ver_0.1: ์ปค๋ฆฌ์ด ์ฑ์ฅ CODE ์ธ๋ฏธ๋ ์ ๋ฆฌ 9. ํฌ์คํธ๋งจ(API ํ ์คํธ) ํ์ฉํ๊ธฐ 10. ๋ป๊น์ 2021๋ ํ๊ณ ์๋ ํ์ธ์, ์ผ๋ง ์ ๋ฉด์ ์์ ๋ค์๊ณผ ๊ฐ์ ์ง๋ฌธ์ ๋ฐ์ ์ ์ด ์์์ต๋๋ค. "์ฌ์ฉ์๊ฐ ๊ฒ์๋ฌผ์ ์์ฑํ๊ณ , ํ์ผ ์ ๋ก๋๋ฅผ .. 2021. 8. 5. MongoDB CRUD(์์ฑ, ์กฐํ, ์์ , ์ญ์ ) ์ฟผ๋ฆฌ๋ฌธ ๐ MongoDB CRUD(์์ฑ, ์กฐํ, ์์ , ์ญ์ ) ์ฟผ๋ฆฌ๋ฌธ ์๋ ํ์ธ์, ์ง๋ ์๊ฐ์๋ MongoDB ์ GUI Client์ธ compass์ ๋ํด ์ค์น๋ฅผ ํด๋ณด์๋๋ฐ์, ์ด๋ฒ์๋ MongoDB์์ ๊ฐ๋จํ CRUD ์์ ์ ์งํํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. (๋ณธ ํฌ์คํ ์์๋ MongoDB์์์ ๋ชจ๋ CRUD ์ฐ์ฐ์ ๋ค๋ฃจ์ง๋ ์์ต๋๋ค. ์ถ๊ฐ์ ์ธ ์ฟผ๋ฆฌ๋ ๋ฌธ๋ฒ ๋ฑ์ด ๊ถ๊ธํ์๋ฉด ๊ณต์๋ฌธ์๋ฅผ ๋ฐฉ๋ฌธํด์ฃผ์ธ์ !) ๐ฏ MongoDB Create(Insert) ์ฟผ๋ฆฌ -- ํ๊ฐ์ document ์ฝ์ db.collection.insert({ document }) -- ๋ค์์ document ์ฝ์ db.collection.insertMany([ document ]) db.collection.insert() db.collection.in.. 2021. 7. 26. MongoDB, compass(MongoDB GUI Client) ์ค์นํ๊ธฐ(MacOS) ์๋ ํ์ธ์! ์ด๋ฒ ์๊ฐ์๋ MacOS์ ๋ชฝ๊ณ ๋๋น๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๋ชฝ๊ณ ๋๋น๋ฅผ ์ค์นํ๊ธฐ์ ์ ๋ชฝ๊ณ ๋๋น์ NoSQL์ ๋ํด ๊ฐ๋ตํ๊ฒ ์ดํด๋ณด๊ณ , ์ค์น๋ฅผ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. โป ๋ชฝ๊ณ ๋๋น๋ ์ฒ์ ์ฌ์ฉํด๋ณด๊ธฐ ๋๋ฌธ์ ์๋ชป๋ ๋ด์ฉ์ด ์กด์ฌํ ์ ์์ต๋๋ค๐ญ NoSQL ์ด๋? Wiki์๋ ๋ค์๊ณผ ๊ฐ์ด ์ค๋ช ํ๊ณ ์์ต๋๋ค. ๋จ์ด ๋ป ์์ฒด๋ฅผ ๋ฐ์ง๋ฉด "Not only SQL"๋ก SQL๋ง์ ์ฌ์ฉํ์ง ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ ์ง์นญํ๋ ๋จ์ด์ ๋๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ ์๋ฏธ๊ฐ ์๋, ์ฌ๋ฌ ์ ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ๋ํ ๊ธฐ์กด์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํ ๋ฐ์ดํฐ์ ์ ์ฅ์๋ก ๋ฌธ์, ๊ทธ๋ํ, key-value, ์ธ๋ฉ๋ชจ๋ฆฌ, ๊ฒ์ ๋ฑ์ ํฌํจํ ๋ค์ํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฌ์ฉ.. 2021. 7. 21. [MySQL] - ํ์ด์ง ์ฒ๋ฆฌ ORDERS, OFFSET, LIMIT ์๋ ํ์ธ์~ ์ด์ ์ ์ด์ํ๋ ๋ธ๋ก๊ทธ์ ์์ค์ฝ๋๋ฅผ ๊ด๋ฆฌํ๋ GitHub๊ฐ ๋ฐ๋ก ์์ต๋๋ค. ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ GitHub ์ด๋ฒ์ ์ ๋ฆฌํ ๋ด์ฉ์ MySQL ๊ธฐ์ค์ผ๋ก ํ์ด์ง ์ฒ๋ฆฌ๋ฅผ ํ ๋ ์ฌ์ฉํ๋ ํค์๋์ธ ORDERS, LIMIT, OFFSET ์ ๋๋ค. ๊ตฌํ์ ํด ๋ณธ ๊ฒฝํ์ด ๊ฑฐ์ ์์ด์ ์ข ๋ฏ์ค์๋ค์. ๋ฐ๋ผ์ ์ด๋ฒ์ ํ์คํ ์ ๋ฆฌํ๋๋ก ํ๊ฒ ์ต๋๋ค !! โ MySQL - ํ์ด์ง ์ฒ๋ฆฌ(orders, limit, offset) ์ฟผ๋ฆฌ๋ฌธ์ ํตํด ํ์ด์ง ์ฒ๋ฆฌ๋ฅผ ํด๋ณผ๊ฑด๋ฐ์, ์์ ์ ์ฟผ๋ฆฌ๋ฌธ์ ํตํด ์ด๋ป๊ฒ ์์ฑํ๋์ง ์์๋ณด๊ฒ ์ต๋๋ค. LIMIT๊ณผ OFFSET์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. โข LIMIT: ํ์ ์ผ๋ง๋ ๊ฐ์ ธ์ฌ์ง โข OFFSET: ์ด๋์ ๋ถํฐ ๊ฐ์ ธ์ฌ์ง SELECT * FROM ํ ์ด๋ธ๋ช ORDERS LIMIT ์ซ์; ์ ์ฟผ๋ฆฌ๋.. 2021. 1. 29. ์ด์ 1 ๋ค์ ๋ฐ์ํ