UPDATE / DELETE

UPDATE / DELETE ์ฟผ๋ฆฌ๋ฅผ ๋‹จ์ผ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ํ•œ ๊ฑด(๋˜๋Š” ์†Œ๋Ÿ‰) ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์กฐ์ธ์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์„ ๋™์‹œ์— ๋Œ€์ƒ์œผ๋กœ ํ•˜์—ฌ UPDATE / DELETE ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

UPDATE(DELETE) ... ORDER BY ... LIMIT n

์ผ๋ฐ˜์ ์œผ๋กœ WHERE ์กฐ๊ฑด์— ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€๋งŒ, ORDER BY + LIMIT ์กฐํ•ฉ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ์œ„ n๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๋งŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

-- ์˜ค๋ž˜๋œ ๋กœ๊ทธ๋ฅผ 1,000๊ฑด์”ฉ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ญ์ œ
DELETE
FROM event_logs
WHERE event_date < '2024-01-01'
ORDER BY event_date
LIMIT 1000;
  • ์žฅ์‹œ๊ฐ„ ์ž ๊ธˆ(Lock)์œผ๋กœ ์ธํ•œ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜ ์˜ํ–ฅ ์ตœ์†Œํ™”

  • ์šด์˜ ํ™˜๊ฒฝ์—์„œ ์ ์ง„์  ๋ฐ์ดํ„ฐ ์ •๋ฆฌ ๊ฐ€๋Šฅ

  • ๋ฐฐ์น˜ ๋‹จ์œ„ ์ฒ˜๋ฆฌ์— ์ž์ฃผ ์‚ฌ์šฉ

JOIN UPDATE

๋‘ ๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•ด, ์กฐ์ธ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋Œ€์ƒ์œผ๋กœ UPDATE / DELETE๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ, ์ฃผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค.

  1. ํ•œ์ชฝ ํ…Œ์ด๋ธ”์˜ ๊ฐ’์„ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ์— ๋ฐ˜์˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

  2. ์–‘์ชฝ ํ…Œ์ด๋ธ”์— ๊ณตํ†ต์œผ๋กœ ์กด์žฌํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋งŒ ์ฐพ์•„ ๊ฐฑ์‹ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

  • JOIN ์ˆœ์„œ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์‹คํ–‰ ๊ณ„ํš(Execution Plan) ํ™•์ธ

  • ์ฝ๊ธฐ ์ „์šฉ ํ…Œ์ด๋ธ”๋„ ์ฝ๊ธฐ ์ž ๊ธˆ(Read Lock), ๊ฐฑ์‹  ๋Œ€์ƒ ํ…Œ์ด๋ธ”์€ ์“ฐ๊ธฐ ์ž ๊ธˆ(Write Lock)์ด ๊ฑธ๋ฆฌ๋ฏ€๋กœ, ์›น ์„œ๋น„์Šค ํ™˜๊ฒฝ์—์„œ๋Š” ๋ฐ๋“œ๋ฝ ๊ฐ€๋Šฅ์„ฑ์— ์ฃผ์˜

์—ฌ๋Ÿฌ ๋ ˆ์ฝ”๋“œ UPDATE

8.0๋ถ€ํ„ฐ๋Š” Row Constructor๋ฅผ ์ด์šฉํ•ด ๊ฐ ๋ ˆ์ฝ”๋“œ์— ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์„ ํ•œ ๋ฒˆ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.(MySQL 5.7 ์ดํ•˜ ๋ฒ„์ „์€ ๋™์ผํ•œ ๊ฐ’์œผ๋กœ๋งŒ ์—…๋ฐ์ดํŠธ ๊ฐ€๋Šฅ)

  • VALUES ROW(...) ๊ตฌ๋ฌธ์€ ์ž„์‹œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋Š” ํšจ๊ณผ

  • ์ด๋ฅผ ๊ธฐ์กด ํ…Œ์ด๋ธ”๊ณผ ์กฐ์ธํ•˜์—ฌ ๊ฐ ๋ ˆ์ฝ”๋“œ๋ฅผ ์„ ํƒ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ์‹

  • ๋‹ค์ˆ˜์˜ UPDATE๋ฅผ ๊ฐœ๋ณ„๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋„คํŠธ์›Œํฌ/ํŠธ๋žœ์žญ์…˜ ์˜ค๋ฒ„ํ—ค๋“œ ์ ˆ๊ฐ

JOIN DELETE

JOIN DELETE ๋ฌธ์žฅ์€ ์ผ๋ฐ˜์ ์ธ ๋‹จ์ผ ํ…Œ์ด๋ธ” DELETE์™€ ๋‹ฌ๋ฆฌ, ์‚ญ์ œ ๋Œ€์ƒ ํ…Œ์ด๋ธ”์„ DELETE ํ‚ค์›Œ๋“œ ๋’ค์— ์ง์ ‘ ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค.

  • JOIN ์ˆœ์„œ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์‹คํ–‰ ๊ณ„ํš(Execution Plan) ํ™•์ธ

  • ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์„ ๋™์‹œ์— ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ์ •๋ฆฌ ์œ ์šฉ

์ฐธ๊ณ ์ž๋ฃŒ

Last updated

Was this helpful?