๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ(64)
-
ํ์ด์ง๋ค์ด์ ๋ฐฉ๋ฒ๋ก ๋น๊ต(Offset vs Cursor)
ํ์ด์ง๋ค์ด์ ์ด๋? OLTP ํ๊ฒฝ์์ ์ฌ์ฉ์์๊ฒ ๋ฐํ๋๋ ๋ฐ์ดํฐ๋ค์ ๋๋ถ๋ถ ํน์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋ ์ผ๋ถ ๋ฐ์ดํฐ์ด๋ค. ์๋ฅผ ๋ค๋ฉด ์น๊ฐ๋ฐ์ ๊ฐ์ฅ ํํ ์์์ธ ๊ฒ์ํ์ด ๊ทธ๋ ๋ค. ๊ฒ์ํ์ ์ผ๋ฐ์ ์ผ๋ก ํ ํ์ด์ง์ ์ฝ 20๊ฐ์ ๊ฒ์๊ธ๋ค์ ์ต์ ์์ผ๋ก ๋ ธ์ถ์ํค๊ณ , ์ฌ์ฉ์๊ฐ ๋ค์ ํ์ด์ง๋ก ๋์ด๊ฐ๊ฒ ๋๋ฉด 21 ~ 40๋ฒ์งธ ๋ฐ์ดํฐ๊ฐ ๊ทธ์ ์์ผ ์กฐํ๋๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋๋ค. ์ด ์ํฉ์์ ์๋ฒ๋ ์ฌ์ฉ์์๊ฒ ์ ์ฒด ๊ฒ์๊ธ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๊ฒ์ด ์๋, ์ฌ์ฉ์๊ฐ ์์นํ ํ์ด์ง์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ง์ ๋ฐํํ๋๋ก API ์ค๊ณ๊ฐ ์ด๋ฃจ์ด์ง๋๋ฐ ์ด๋ฅผ ํ์ด์ง๋ค์ด์ ๋ฐฉ๋ฒ๋ก ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ํ์ด์ง๋ค์ด์ ์ข ๋ฅ ์ผ๋ฐ์ ์ผ๋ก ๋ง์ด ์ฌ์ฉ๋๋ ํ์ด์ง๋ค์ด์ ๊ธฐ๋ฒ์๋ Offset ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ ๊ณผ Cursor(Keyset) ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ ์ด ์กด์ฌํ๋ค. Offset ๊ธฐ..
2024.02.17 -
Exists ์ฐ์ฐ์์ ๋ํด์ (SQL)
๊ฐ์ธ์ ์ผ๋ก SQL์ Exists ์ฐ์ฐ์์ ๋ํ ์ดํด๋๊ฐ ๋ฎ์๊ณ ์ด๋ก ์ธํด ์ค์ ๋ก ํ์ฉ์ ๊ฑฐ์ ๋ชปํ๊ณ ์์๋๋ฐ, DB ์คํฐ๋๋ฅผ ์ํด ์ฑ ์ ์ฝ๋ ๋์ค ํด๋น ์ฐ์ฐ์์ ๋ํ ๋ด์ฉ์ด ๋ฑ์ฅํด์ ์ด ๊ธฐํ์ ์ด๋ฅผ ํ์คํ ์ ๋ฆฌํ๊ณ ๋์ด๊ฐ๊ณ ์ ํ๋ค. Exists ์ฐ์ฐ์๋? Exists ์ฐ์ฐ์๋ ์ฐ์ฐ์ ์ดํ์ ๋ฑ์ฅํ๋ ์๋ธ์ฟผ๋ฆฌ์ ๋ํด ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ ๊ฒฝ์ฐ True, ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ False๋ฅผ ๋ฐํํ๋ ์ญํ ์ ์ํํ๋ค. ๋ง๋ก๋ง ์ค๋ช ํ๋ฉด ์ดํด๊ฐ ์ด๋ ค์ฐ๋ ์ค์ ์์๋ฅผ ๋ค์ด๋ณด๋ฉด ์๋์ ๊ฐ๋ค. SELECT post.id, post.name FROM post WHERE post.user_id = 10 AND EXISTS ( SELECT 1 FROM comment WHERE comment.post_id = post.id AND..
2024.02.12 -
๋น๊ด์ ๋ฝ์ ํตํ ๊ณ์ข์ด์ฒด ๋์์ฑ ํธ๋ค๋ง (feat. @Transactional ํ์ต ํ ์คํธ)
JPA์ @Transactional ์ด๋ ธํ ์ด์ ์ ๋ํ ์ดํด๋ฅผ ์ฌ๋ฆด ๊ฒธ, ์๋ ๋ ํฌ๋ฅผ ์์ฑํ๊ณ ํ์ต ํ ์คํธ๋ฅผ ์งํํ๋ค. GitHub - One-armed-boy/transactional_test: ํ์ต ํ ์คํธ of @Transactional ํ์ต ํ ์คํธ of @Transactional . Contribute to One-armed-boy/transactional_test development by creating an account on GitHub. github.com ํ ์คํธ ์์ ๋ ์ผ๋ฐ์ ์ผ๋ก ๋์์ฑ ์์ ์ ๋ง์ด ๋ฑ์ฅํ๋ ๊ณ์ข ์ด์ฒด ์ปจํ ์คํธ๋ฅผ ๊ฐ๋จํ๊ฒ ๊ตฌํํ๊ณ ์ ํ๋ค. ์๋๋ ์ด๋ฅผ ์ํ ์ํ์ค๋ฅผ ๋ง๋ก์จ ์ ๋ฆฌํ ๋ด์ฉ์ด๋ค. ์ฌ์ฉ์ A๋ฅผ ์กฐํ ์ฌ์ฉ์ B๋ฅผ ์กฐํ ์ฌ์ฉ์ A์๊ฒ ์ก๊ธ ์์ฒญ์ด ๋ค์ด์จ X ๋งํผ์ ์์ก..
2024.02.04 -
์ฒ์ ๋ณธ @Transactional
์ ์ง์ฅ์์ NestJS - TypeOrm์ ํตํด ๊ฐ๋ฐ์ ์งํํด์๊ณ , ํด์ฌ ํ Spring์ ํ๋ฒ ์ ๋ฌธํด๋ณด์๋ ์๊ฐ์ผ๋ก ๊ฐ๋จํ ํ๋ก์ ํธ๋ฅผ ์งํ ์ค์ ๋๋ค. GitHub - One-armed-boy/spring_stream_video: ๋น๋์ค ์คํธ๋ฆฌ๋ฐ ์๋ฒ with Spring boot ๋น๋์ค ์คํธ๋ฆฌ๋ฐ ์๋ฒ with Spring boot. Contribute to One-armed-boy/spring_stream_video development by creating an account on GitHub. github.com ์ฒ์ ๊ตฌ์ํ๋ ์์ฃผ ๊ธฐ์ด์ ์ธ ๊ธฐ๋ฅ๋ง ๊ตฌํํ ๋ค ์ฃผ๋ณ์ ๊ณ์ ์คํ๋ง ๊ฐ๋ฐ์ ๋ถ๊ป ๊ฐ๋จํ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์๋๋ฐ, @Transactional ์ด๋ ธํ ์ด์ ์ ํ์ฉ์ ๋ํด ๋ฐ์ ๋ฆฌ๋ทฐ๊ฐ ํนํ ๊ธฐ์ต์ด ..
2024.01.28 -
์๋ธ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ ๋ํ ์คํด
๊ฐ์ธ์ ์ธ ๊ฒฝํ ์, ์ทจ์ ์ ์ค๋นํ๋ ๊ฐ๋ฐ์ ์ง๋ง์ ๋ถ๋ค์ด๋ ํน์ ์ ์ ๋ด์ง ์ฃผ๋์ด ๊ฐ๋ฐ์ ๋ถ๋ค ์ฌ์ด์๋ ์๋ธ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ์ ๊ฒ์ ์ฑ๋ฅ์ด ๋๋ผ๋งํฑํ๊ฒ ๋๋น ์ง ๊ฒ์ด๋ผ๋ ํต๋ ์ด ์กด์ฌํ๋ ๊ฒ ๊ฐ๋ค. ๋ ๋ํ ๊ทธ๋ ๊ฒ ์๊ฐํด์์๋๋ฐ ์ด๊ฒ ์ ๋ง ๋ง๋์ง, ์๋๋ฉด ์คํด์ธ ๊ฒ์ธ์ง ํ์ธํด๋ณด๋ คํ๋ค. ์๋ธ ์ฟผ๋ฆฌ๋? ์๋ธ ์ฟผ๋ฆฌ๋ ๋ฉ์ธ ์ฟผ๋ฆฌ๊ฐ ์กด์ฌํ๋ ์ํฉ์์ ๋ฉ์ธ ์ฟผ๋ฆฌ ๋ด์ ํฌํจ๋ ๋ ๋ค๋ฅธ ์ฟผ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค. ์ด๋ค ์ ์ ํฌํจ๋ ์ฟผ๋ฆฌ์ธ์ง์ ๋ฐ๋ผ ์ค์นผ๋ผ ์๋ธ ์ฟผ๋ฆฌ(SELECT ๋ฌธ), ์ธ๋ผ์ธ ๋ทฐ(FROM ์ ), ์๋ธ ์ฟผ๋ฆฌ(WHERE ์ , ๊ทธ๋ฅ ์๋ธ ์ฟผ๋ฆฌ๋ผ๊ณ ํ๋ ๋ฏ...) ๋ฑ์ ๋ช ์นญ์ผ๋ก ๋ถ๋ฆฐ๋ค. ์๋๋ ์๋ธ ์ฟผ๋ฆฌ์ ์์์ด๋ค. -- ์ค์นผ๋ผ ์๋ธ ์ฟผ๋ฆฌ SELECT p.id AS id, (SELECT email FROM accou..
2024.01.21 -
SGA vs PGA (in Oracle)
ํ์ฌ DB ์คํฐ๋์ ์ผํ์ผ๋ก '์น์ ํ SQL ํ๋'์ ํ๋ฒ ๋ ์ฝ๊ณ ์๋ค. ์ด๋ฒ ํํธ๋ ์ํธ ๋จธ์ง ์กฐ์ธ + ํด์ ์กฐ์ธ ์ธ๋ฐ, ๊ฐ์ธ์ ์ผ๋ก ํด๋น ์์ ์ ์ด๋ฏธ 1ํ๋ ํ ์ํฉ์ด๋ผ ๋ ์กฐ์ธ์ด ๋๋ต์ ์ผ๋ก ์ด๋ป๊ฒ ์๋ํ๊ณ , ์ด๋ค ์ํฉ์์ ํ์ฉ๋๋์ง๋ ์ดํดํ๊ณ ์๋ค. ๋ค๋ง 1ํ๋ ์ ์ ๋ชฐ๋ผ์ ๊ทธ๋ฅ ๋์ด๊ฐ๋ ์ค๋ผํด์ PGA์ SGA์ ๊ฐ๋ ์ด ์๋๋ฐ, ์ด๋ฒ ๊ธฐํ์ ์ด๋ฅผ ๊ณต๋ถํ๊ณ ๋์ด๊ฐ๋ฉด ์ข๊ฒ ๋ค ์ถ์ด ๊ณต๋ถํ ๋ด์ฉ๋ค์ ๊ธฐ๋กํด๋๊ธฐ ์ํด ์ด ๊ธ์ ์์ฑํ๋ค. ์ด ๊ธ์์๋ ์ฑ ์์ ๊ฐ๋จํ๊ฒ ๋ค๋ค์ง ๋ฐ์ดํฐ ์กฐํ ์ SGA์ PGA ์ ๊ทผ์ ์๋ ์ฐจ์ด์ ์ค์ ์ ๋๊ณ ๋ค๋ค๋ณด๋ คํ๋ค. ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ํ ์๊ฐ SGA SGA๋ System Global Area์ ์ฝ์๋ก, DB ๋ด ํ๋๋ง ์กด์ฌํ๋ฉด์ ๋ชจ๋ ์ธ์ ์ด ๊ณต์ ํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด๋ค. SG..
2024.01.14