IT/SQL 2

[DB] SQL ์„ฑ๋Šฅ ์ตœ์ ํ™” (feat. SQL Optimization)

๐Ÿ“ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์กฐ์ธ ์ „๋žต 1. ์กฐ์ธ ์ˆœ์„œ ์ตœ์ ํ™” ์ž‘์€ ํ…Œ์ด๋ธ”์„ ๋จผ์ € ์กฐ์ธํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์–‘์„ ์ค„์—ฌ ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ ๋ฐฉ์ง€์กฐ์ธ ์กฐ๊ฑด์ด ๋ช…ํ™•ํ•˜๋„๋ก ์ธ๋ฑ์Šค ์ ์šฉ (customer_id ๊ฐ™์€ PK, FK ํ™œ์šฉ) * MariaDB์—์„œ๋Š” `STRAIGHT_JOIN`์„ ํ†ตํ•ด ์ง€์ •ํ•œ ์ˆœ์„œ๋Œ€๋กœ ์กฐ์ธ ์ง€์ • ๊ฐ€๋Šฅ์กฐ์ธ ํžŒํŠธ ์‚ฌ์šฉ : SQL ์‹คํ–‰ ์‹œ ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ์„ ํƒํ•˜๋Š” ์กฐ์ธ ๋ฐฉ์‹๊ณผ ์ˆœ์„œ๋ฅผ ๊ฐ•์ œ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ - Nested Loop Join : ์ž‘์€ ํ…Œ์ด๋ธ”์„ ๊ธฐ์ค€์œผ๋กœ ํฐ ํ…Œ์ด๋ธ”์— ๋ฐ˜๋ณต ์ ‘๊ทผ (๋ฃจํ”„ ๋ฐฉ์‹) - Sort Merge Join : ์–‘์ชฝ ํ…Œ์ด๋ธ”์„ ์ •๋ ฌํ•ด์„œ ๋ณ‘ํ•ฉ - Hash Join : ํ•œ์ชฝ ํ…Œ์ด๋ธ” ํ•ด์‹œ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ํ›„ ๋‹ค๋ฅธ ์ชฝ๊ณผ ์กฐ์ธ* SELECT ๋ฐ”๋กœ ๋’ค์— ์‚ฌ์šฉ 2. ์ธ๋ฑ์Šค ํ™œ์šฉ ON ์ ˆ์— ์‚ฌ์šฉ๋˜๋Š” ์ปฌ..

IT/SQL 2025.04.09

[MySQL] ๊ธฐ๋ณธ SQL ๋ฌธ๋ฒ• ์ด์ •๋ฆฌ & ๋ชจ์Œ

โœ”๏ธ ์ฃผ์˜ - SELECT ์ ˆ์—์„œ ์ƒ์„ฑํ•œ ๋ณ„์นญ์„ Where ์ ˆ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ- Partition๊ณผ ๊ฐ™์€ ์œˆ๋„์šฐ ํ•จ์ˆ˜๋Š” Where ์ ˆ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ - ์„œ๋ธŒ์ฟผ๋ฆฌ ๋งŒ๋“ค๊ณ , ๋ณ„์นญ ์•ˆ ์‚ฌ์šฉํ•ด๋„ ๋งŒ๋“ค์–ด์•ผ ํ•จ โญ๏ธ SQL ์ฟผ๋ฆฌ ์ˆœ์„œ1. SELECT2. FROM3. JOIN4. WHERE5. GROUP BY6. HAVING7. ORDER BY8. LIMIT ๐Ÿ“ NULL ์ฒ˜๋ฆฌ ๊ด€๋ จ ํ•จ์ˆ˜ NULL ์ฒ˜๋ฆฌ : ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด NULL์ธ ๊ฒฝ์šฐ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ํ•จ์ˆ˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ์—์„œ ๋ˆ„๋ฝ๋˜๊ฑฐ๋‚˜ ์ •์˜๋˜์ง€ ์•Š์€ ๊ฐ’์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ํ™œ์šฉ NULL ๊ฐ’ ํ™•์ธ`IS NULL` : ๊ฐ’์ด NULL์ธ์ง€ ํ™•์ธ `IS NOT NULL` : ๊ฐ’์ด NULL์ด ์•„๋‹Œ์ง€ ํ™•์ธ `ISNULL(expr)` : NULL์ด๋ฉด 1 ๋ฐ˜ํ™˜, ์•„๋‹ˆ๋ฉด 0์„ ๋ฐ˜ํ™˜..

IT/SQL 2025.03.23
Copy