๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

๐Ÿ”ฌapplication/- Database17

์˜คํ”„์…‹ ํŽ˜์ด์ง•, ๋‹จ๊ณ„๋ณ„๋กœ ์ตœ์ ํ™”ํ•˜๊ธฐ ์ด ๊ธ€์€ offset based pagination ์„ ๋นŒ๋ฏธ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‚ด๋ถ€ ๋™์ž‘๊ณผ ์—ฌ๋Ÿฌ ๊ฐœ๋…๋“ค์„ ์•Œ์•„๋ณด๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. 2๊ฐœ์˜ ๊ธ€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ , ๊ฐ๊ฐ์˜ ๊ธ€์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” insight ๊ฐ€ ๋‹ค๋ฅด๋‹ˆ ํ•จ๊ป˜ ์ฝ์œผ๋ฉด ๋”์šฑ ์œ ์ตํ•ฉ๋‹ˆ๋‹ค. ์˜คํ”„์…‹ ํŽ˜์ด์ง•์ด ๋Š๋ฆฐ ์ง„์งœ ์ด์œ  ์˜คํ”„์…‹ ํŽ˜์ด์ง•, ๋‹จ๊ณ„๋ณ„๋กœ ์ตœ์ ํ™”ํ•˜๊ธฐ 2023. 11. 19.
์˜คํ”„์…‹ ํŽ˜์ด์ง•์ด ๋Š๋ฆฐ ์ง„์งœ ์ด์œ  ์ด ๊ธ€์€ offset based pagination ์„ ๋นŒ๋ฏธ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‚ด๋ถ€ ๋™์ž‘๊ณผ ์—ฌ๋Ÿฌ ๊ฐœ๋…๋“ค์„ ์•Œ์•„๋ณด๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. 2๊ฐœ์˜ ๊ธ€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ , ๊ฐ๊ฐ์˜ ๊ธ€์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” insight ๊ฐ€ ๋‹ค๋ฅด๋‹ˆ ํ•จ๊ป˜ ์ฝ์œผ๋ฉด ๋”์šฑ ์œ ์ตํ•ฉ๋‹ˆ๋‹ค. ์˜คํ”„์…‹ ํŽ˜์ด์ง•์ด ๋Š๋ฆฐ ์ง„์งœ ์ด์œ  ๋Š๋ฆผ์˜ ๊ทผ๋ณธ์ ์ธ ์›์ธ 0๋ฒˆ offset ๋ถ€ํ„ฐ ์‹œ์ž‘ offset ๊นŒ์ง€์˜ ๋ฐ์ดํ„ฐ๋Š” ๋ฒ„๋ ค์ง€๊ณ  10๊ฑด๋งŒ ๊ฒฐ๊ณผ๋กœ ๋ฐ˜ํ™˜๋จ offset based pagination ์ด ๋Š๋ฆฐ ์ด์œ  ๋ฌธ์ œ๋Š” ์ •๋ ฌ ๋ฐฉ์‹์— ์žˆ์Œ ์ •๋ ฌ์„ ์œ„ํ•ด ๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ๋ฅผ streaming ์ด ์•„๋‹Œ buffering ๋ฐฉ์‹์œผ๋กœ ์ „ํ™˜ streaming vs buffering streaming: ์ฟผ๋ฆฌ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์ฆ‰์‹œ client ์—๊ฒŒ ๋ฐ˜ํ™˜ LIMIT ๊ตฌ๋ฌธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ ์ด์  ์กด์žฌ bufferi.. 2023. 11. 19.
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] Isolation Level, ๊ณ ๋ฆฝ ์ˆ˜์ค€ Isolation Level, ๊ณ ๋ฆฝ ์ˆ˜์ค€์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Transaction, ํŠธ๋žœ์žญ์…˜ ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๋งŒ์•ฝ ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•ด์„œ ํ™•์‹คํ•˜๊ฒŒ ์ดํ•ด๋ฅผ ํ•˜์ง€ ๋ชป ํ–ˆ๋‹ค๋ฉด, ํ™•์ธํ•˜๊ณ  ์˜ค๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค! Isolation Level, ๊ณ ๋ฆฝ ์ˆ˜์ค€ Isolation Level, ๊ณ ๋ฆฝ ์ˆ˜์ค€์€ ํŠธ๋žœ์žญ์…˜๋“ค ๋ผ๋ฆฌ ์ผ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ผ๋งˆ๋‚˜ ํ—ˆ์šฉํ•  ๊ฒƒ์ธ์ง€๋ฅผ ์ •ํ•˜๋Š” ์ˆ˜์ค€์ด๋‹ค. ๊ณ ๋ฆฝ ์ˆ˜์ค€์—๋Š” ์ด 4๊ฐ€์ง€์˜ ์ˆ˜์ค€, 3๋‹จ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค (0๋‹จ๊ณ„ ๋ถ€ํ„ฐ ์‹œ์ž‘) Level 0 Read Uncommitted Level 1 Read Committed Level 2 Repeatable Read Level 3 Serializable ์ด๋Ÿฐ ๊ณ ๋ฆฝ ์ˆ˜์ค€์—๋Š” ๋‚˜๋ฆ„์˜ ํŠน์ง•์ด ์žˆ๋‹ค. ์ด์ œ ๊ฐ๊ฐ์˜ ์ˆ˜์ค€์— ๋”ฐ๋ผ์„œ ์•Œ์•„๋ณด์ž. Isolation Le.. 2021. 4. 7.
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] Transaction, ํŠธ๋žœ์žญ์…˜์ด๋ž€? Transaction, ํŠธ๋žœ์žญ์…˜ ํŠธ๋žœ์žญ์…˜(Transaction) ์ด๋ž€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—… ๋‹จ์œ„์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚จ๋‹ค๋Š” ์ด์•ผ๊ธฐ๋Š” SELECT, UPDATE, INSERT, DELETE ์™€ ๊ฐ™์€ ํ–‰๋™์„ ๋œปํ•œ๋‹ค. ์ด๋Ÿฐ ํŠธ๋žœ์žญ์…˜์€ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์€ Commit (์ €์žฅ) ๋˜๊ฑฐ๋‚˜ Rollback (์ฒ ํšŒ)๋  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด ์šฐ๋ฆฌ๊ฐ€ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด ํฌ์ธํŠธ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. A, B, C, D ๊ฐ€ ๋ฌธ์ œ๋ฅผ ํ’€์–ด ๊ฐ๊ฐ 100 Point ์”ฉ ์–ป์—ˆ๊ณ  ์ด๋ฅผ DB์— ์ €์žฅํ•˜๋ ค ํ•œ๋‹ค. A ์ €์žฅ ์™„๋ฃŒ, B ์ €์žฅ ์™„๋ฃŒ, C ์ €์žฅ ์™„๋ฃŒ, D ์ €์žฅ ์‹คํŒจ ์ด๋Ÿฐ ์ƒํ™ฉ์ด ์˜ค๊ฒŒ ๋œ๋‹ค๋ฉด ์ž˜๋ชป๋œ ์ฒ˜๋ฆฌ์ด๋ฏ€๋กœ ๋‹ค์‹œ ์ €์žฅ์„ ์ˆ˜ํ–‰ํ•ด์•ผ.. 2021. 4. 7.
[SQL๋ฌธ ๊ธฐ์ดˆ] DML ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด :: INSERT, UPDATE, DELETE DML Data Management Language ์˜ ์•ฝ์ž์ธ DML์€ ์•ž์„œ ๋ฐฐ์šด DDL์œผ๋กœ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ  ๋‚˜์„œ ๊ธฐ์กด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…, ํ˜น์€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น์–ด์˜ ์ง‘ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ :: INSERT INSERT๋ฌธ์€ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ๋กœ์šฐ๋งŒ INTO ๋‹ค์Œ์— ๋ช…์‹œํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”์— ์‚ฝ์ž…ํ•œ๋‹ค. INSERT INTO table_name (column_name, ..) VALUES(column_vale, ...); VALUES์— ๋“ค์–ด๊ฐ€๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’๋“ค์€, CREATEํ•  ๋•Œ ์ง€์ •๋œ ์นผ๋Ÿผ๊ณผ ์ผ์น˜ํ•˜๋„๋ก ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋กœ ์ธ์‚ฌ๋ถ€์˜ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ด๋ณด์ž INSERT INTO dept (deptno, loc, dname) VALUES(20, '์ธ์ฒœ', '์ธ์‚ฌ๋ถ€') ๋ฐ์ดํ„ฐ ์ˆ˜์ •.. 2020. 7. 7.
[SQL๋ฌธ ๊ธฐ์ดˆ] DDL ๋ฐ์ดํ„ฐ ์ •์˜์–ด :: CREATE, ALTER, DROP, TRUNCATE ๋ฌธ Data Define Language DDL์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ ์ •์˜ ์–ธ์–ด๋Š” ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑ, ์ˆ˜์ •, ์ œ๊ฑฐ๋ฅผ ์œ„ํ•œ ๋ช…๋ น์–ด๋“ค์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์•ž์„œ์„œ ๋ฐฐ์šด SELECT๋Š” ๋”ฐ์ง€์ž๋ฉด DML::Data Management Language ์— ํ•ด๋‹นํ•œ๋‹ค. ์•ž์—์„œ ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฐ ๋ฌธ์žฅ์„ ๋ดค์„ ๊ฒƒ์ด๋‹ค SELECT * FROM STUDENT_TABLE; SELECT student_id FROM STUDENT_TABLE ORDER BY name DESC; ์ด๋“ค์˜ ๊ฒฐ๊ณผ๊ฐ€ ์–ด๋–ค ์‹์œผ๋กœ ๋™์ž‘ํ•˜๊ณ  ์กฐ๊ฑด์„ ๋ฐ›๋Š”์ง€ ๊ถ๊ธˆ ํ•˜๋‹ค๋ฉด SELECT ๋ฌธ ํ˜น์€ SQL๋ฌธ ๊ธฐ์ดˆ Section์— ๊ฐ€์„œ ํ™•์ธํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค. ๋ฌธ์žฅ์˜ ๊ฒฐ๊ณผ์— ํ•ต์‹ฌ์€ ํ…Œ์ด๋ธ” ์ž์ฒด์˜ ๋ณ€๊ฒฝ์€ ์—†๋‹ค. ๋ผ๋Š” ์ ์— ์žˆ๋‹ค. ์šฐ๋ฆฌ๋Š” DML๋กœ ํ…Œ์ด๋ธ” ์ž์ฒด์˜ ๋ณ€๊ฒฝ์€ ํ•  ์ˆ˜ ์—†์ง€๋งŒ ์•ž์œผ๋กœ ๋ฐฐ์šฐ๊ฒŒ๋  .. 2020. 7. 7.