2025. 10. 30. 15:09ใ๋ฐ์ดํฐ๋ฒ ์ด์ค

์ต๊ทผ์ ์๊ฐ์ ์ฌ์ ๊ฐ ์๊ธฐ๋ฉด์, ์ด์ ์ค์ธ ์๋น์ค์ ์ฃผ์ ์ฟผ๋ฆฌ๋ค์ ์ ๊ฒํด ์ฑ๋ฅ ๊ฐ์ ์ด ๊ฐ๋ฅํ ๋ถ๋ถ์ด ์๋์ง ํ์ธํด๋ณด๋ ค๊ณ ํ๋ค.
์ด๋ฅผ ์ํด EXPLAIN ์ ํ์ฉํด ์ฃผ์ SELECT ์ฟผ๋ฆฌ์ ์คํ ๊ณํ์ ๋ถ์ํ๊ณ , ์ธ๋ฑ์ค ํจ์จ์ฑ๊ณผ ์กฐ์ธ ์์ ๋ฐ ์กฐ๊ฑด ์ต์ ํ ๋ฐฉํฅ์ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค.
๐๐ป ์ด๋ฒ ์ง๋จ์ ํตํด ์ค์ ์ด์ ํ๊ฒฝ์์์ ์ธ๋ฑ์ค ์ค๊ณ๊ฐ ์ ์ ํ ์ด๋ฃจ์ด์ก๋์ง ๊ฒํ ํจ์ผ๋ก์จ ์๋น์ค ์ ๋ฐ์ ์ฑ๋ฅ ์์ ์ฑ์ ๋์ด๋ ๊ฒ์ด ๋ชฉํ๋ค !
๐ ๋ถ์ ๋ฐฉ๋ฒ
์ฃผ์ SELECT ์ฟผ๋ฆฌ๋ค์ ์คํ ๊ณํ์ EXPLAIN ์ผ๋ก ํ์ธํ๋ฉฐ, ๊ฐ ์ฟผ๋ฆฌ๊ฐ ์ค์ ๋ก ์ด๋ค ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์กฐ์ธํ๋์ง๋ฅผ ์ ๊ฒํ๋ค.
type, possible_keys, key, rows, Extra ํญ๋ชฉ์ ์ค์ฌ์ผ๋ก ์ฟผ๋ฆฌ์ ์ ๊ทผ ๋ฐฉ์(ํ์ค์บ, ์ธ๋ฑ์ค ์ค์บ, ์กฐ์ธ ๋ฐฉ์ ๋ฑ)์ ๋ถ์ํ๊ณ ์ธ๋ฑ์ค ํจ์จ์ฑ๊ณผ ์กฐ์ธ ์์๊ฐ ์ ์ ํ ์ ํ๋๊ณ ์๋์ง ํ์ธํ๋ค.
๋ํ Using temporary, Using filesort์ ๊ฐ์ด ์ ๋ ฌ, ์ง๊ณ ์ ์ถ๊ฐ ๋น์ฉ์ด ๋ฐ์ํ๋ ํญ๋ชฉ์ ์ฒดํฌํ์ฌ ์ธ๋ฑ์ค ์ถ๊ฐ ๋๋ WHERE ์กฐ๊ฑด ๊ตฌ์กฐ ๋ณ๊ฒฝ์ ํตํ ๊ฐ์ ๊ฐ๋ฅ์ฑ์ ๊ฒํ ํ์๋ค.
โ๏ธ EXPLAIN ๊ฐ๋ ๋ฐ ์ฃผ์ ํ์ ์ ๋ฆฌ
EXPLAIN ์ด๋ ?
MySQL ์์ EXPLAIN ์ ์ฟผ๋ฆฌ์ ์คํ ๊ณํ์ ํ์ธํ๊ธฐ ์ํ ๋ช ๋ น์ด๋ก, ์ตํฐ๋ง์ด์ ๊ฐ ์ฟผ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ํด์ํ๊ณ , ์ด๋ค ์์๋ก ํ ์ด๋ธ์ ์ฝ๋์ง๋ฅผ ๋ณด์ฌ์ค๋ค.
์ฆ, ์ฟผ๋ฆฌ๊ฐ ์ค์ ๋ก ์ธํ ์ค๋ฅผ ํ๋์ง, ํ์ค์บ์ ํ๋์ง, ์กฐ์ธ ์์๊ฐ ์ด๋ป๊ฒ ๋๋์ง ๋ฏธ๋ฆฌ ์์ธกํ ์ ์๋ ๋๊ตฌ์ด๋ค.
| ํญ๋ชฉ | ์ค๋ช |
| id | ์ฟผ๋ฆฌ ์คํ ๋จ๊ณ ๋ฒํธ. ์๋ธ์ฟผ๋ฆฌ๋ ํ์์ฟผ๋ฆฌ๊ฐ ๋ง์์๋ก ์ฌ๋ฌ id๊ฐ ์๊น. |
| select_type | ๋จ์ SELECT์ธ์ง, ์๋ธ์ฟผ๋ฆฌ์ธ์ง, UNION ๋ฑ์ธ์ง ๊ตฌ๋ถ. |
| table | ์ ๊ทผํ๋ ํ ์ด๋ธ๋ช ๋๋ ํ์ ํ ์ด๋ธ(alias). |
| type | ์กฐ์ธ ๋ฐฉ์(=์ ๊ทผ ๋ฐฉ์). ์ฟผ๋ฆฌ ์ฑ๋ฅ ํ๋จ์ ํต์ฌ ์งํ. |
| possible_keys | ์ตํฐ๋ง์ด์ ๊ฐ ์ฌ์ฉํ ์ ์๋ค๊ณ ํ๋จํ ์ธ๋ฑ์ค ํ๋ณด. |
| key | ์ค์ ๋ก ์ฌ์ฉ๋ ์ธ๋ฑ์ค. NULL์ด๋ฉด ์ธ๋ฑ์ค ๋ฏธ์ฌ์ฉ. |
| rows | ์ตํฐ๋ง์ด์ ๊ฐ ์์ธกํ ์ค์บ ํ ์(๊ฐ์ด ์์์๋ก ํจ์จ์ ). |
| Extra | ์ถ๊ฐ ์์ ์ ๋ณด (์์ ํ ์ด๋ธ ์์ฑ, ์ ๋ ฌ ๋ฑ). |
type (์ ๊ทผ ๋ฐฉ์)
: type ์ ์คํ ๊ณํ์์ ๊ฐ์ฅ ์ค์ํ๊ฒ ๋ณด๋ ํญ๋ชฉ์ผ๋ก, ๊ฐ์ด ALL ์ ๊ฐ๊น์ธ์๋ก ๋๋ฆฌ๊ณ , const์ ๊ฐ๊น์ธ์๋ก ํจ์จ์ ์ธ ์ ๊ทผ์ด๋ค.
| type | ์๋ฏธ | ์ฑ๋ฅ | ์ค๋ช |
| system | ๋จ 1ํ๋ง ์กด์ฌํ๋ ํ ์ด๋ธ | โญ๏ธ์ต์ | ํ ์คํธ์ฉ·์กฐํ์ฉ ์์ ํ ์ด๋ธ |
| const | PK ๋๋ UNIQUE ์ธ๋ฑ์ค๋ก ๋จ์ผ ํ ์กฐํ | โญ๏ธ | WHERE id = 1 ํํ |
| eq_ref | JOIN ์ ์์ชฝ์ด PK/UNIQUE ์ธ๋ฑ์ค๋ก 1:1 ๋งค์นญ | โญ๏ธ | ์กฐ์ธ ์ต์ |
| ref | ์ธ๋ฑ์ค๋ก ๋งค์นญํ์ง๋ง ์ฌ๋ฌ ํ ๊ฐ๋ฅ | โ | ์ผ๋ฐ์ ์ธ FK ์กฐํ |
| range | ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ ๋ฒ์ ์กฐํ | โ | BETWEEN, <, > |
| index | ์ธ๋ฑ์ค ์ ์ฒด ์ค์บ (ํ ์ด๋ธ๋ณด๋ค ๋น ๋ฅด์ง๋ง ์ฌ์ ํ ๋ง์) | โ ๏ธ | ์ธ๋ฑ์ค๋ง ์ฝ์ |
| ALL | ํ ์ด๋ธ ์ ์ฒด ์ค์บ | โ | ์ธ๋ฑ์ค ๋ฏธ์ฌ์ฉ (์ต์ ) |
๐๐ป ์ฌ๊ธฐ์ ALL ์ด ๋์ค๋๊ฒ ๊ฐ์ฅ ์ต์ ,, ํ์ค์บํ๊ณ ์๋ค๋ ๋ป์ด๋ค.
Extra ์ฃผ์ ํญ๋ชฉ
: Extra ๋ ์ฟผ๋ฆฌ ์คํ ์ค ์ถ๊ฐ์ ์ธ ์์ ์ด๋ ์ต์ ํ ์ฌ๋ถ๋ฅผ ์๋ ค์ฃผ๋ ๋ถ๋ถ์ด๋ค.
| Extra | ์๋ฏธ | ์กฐ์น ๋ฐฉํฅ |
| Using where | WHERE ์กฐ๊ฑด์ผ๋ก ํํฐ๋ง ์ค | ์ ์ |
| Using index | ์ปค๋ฒ๋ง ์ธ๋ฑ์ค ์ฌ์ฉ (ํ ์ด๋ธ ์ ๊ทผ ์์) | ํจ์จ์ |
| Using temporary | ์์ ํ ์ด๋ธ ์์ฑ (GROUP BY ๋ฑ) | ์ฑ๋ฅ ์ ํ ๊ฐ๋ฅ |
| Using filesort | ์ ๋ ฌ ์์ ๋ฐ์ (ORDER BY ๋ฑ) | ์ธ๋ฑ์ค๋ก ์ ๋ ฌ ์ฒ๋ฆฌ ๊ณ ๋ ค |
| Using join buffer (BNL) | ๋ธ๋ก ๋ค์คํฐ๋ ๋ฃจํ ์กฐ์ธ ๋ฐ์ | ์กฐ์ธ ํค ์ธ๋ฑ์ค ํ์ |
| NULL | ์ถ๊ฐ ์์ ์์ | ์ ์ |
๐๐ป ORDER BY ๋ฑ ๋๋ฌธ์ filesort ๊ฐ ์ผ์ด๋๋ฉด ์๊ฐ๋ณด๋ค ์ฑ๋ฅ์ด ๋ง์ด ๋จ์ด์ง๋ค,, ๋ฐ๋ผ์ ์ธ๋ฑ์ค๋ก ์ ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ๊ณ ๋ คํ๋๊ฒ์ด ์ข๋ค.
๐ ๋ถ์ ์์
* ํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ๊ณต๊ฐํ ์๋ ์์ผ๋, ๊ธ ์์ฑ์ ์ํด ํ ์ด๋ธ/์ปฌ๋ผ๋ช ์ ์ ๋ถ ๋ณ๊ฒฝํ ์์์ ๋๋ค.*
1๏ธโฃ
<select id="selectLatestLocation" parameterType="int" resultType="Location">
SELECT *
FROM LOCATIONS
WHERE PARENT_ID = #{parentId}
ORDER BY CREATED_AT DESC
LIMIT 1
</select>
์ด ์ฟผ๋ฆฌ๋ ์ด์ ์ ์ธ๋ฑ์ค๊ฐ PK ๋ง ์ค์ ๋์ด ์๊ณ , ์๋ฌด๋ฐ ์ค์ ์ด ๋์ด์์ง ์์๋ค.
๋ฐ๋ผ์ EXPLIAN ํด๋ณธ ๊ฒฐ๊ณผ ํ์ค์บ์ ์ฌ์ง์ด filesort ๊น์ง ์ด๋ค์ ธ ๊ต์ฅํ ์ฑ๋ฅ์ด ์ ์ข์ ์ฟผ๋ฆฌ์์ ๋ฐ๊ฒฌํ๋ค.
CREATE INDEX IDX_locations_parent_created
ON LOCATIONS (PARENT_ID, CREATED_AT DESC);
์ด๋ ๊ฒ ๋ณตํฉ ์ธ๋ฑ์ค๋ก PARENT_ID, CREAT_AT ์ ์์๋๋ก ์ ์ธํด์คฌ๊ณ ,
๊ทธ ํ์ ๋ค์ EXPLAIN ํด๋ณธ ๊ฒฐ๊ณผ ์ตํฐ๋ง์ด์ ๊ฐ ํ ์ค์บ ๋์ ์ธ๋ฑ์ค๋ฅผ ์ ํํ๊ณ , ์กฐํ ์ฑ๋ฅ์ด ํจ์ฌ ์ข์์ง์ ํ์ธํ ์ ์์๋ค.
(์ด๋ ์ ๋ ฌ์ ๋ณดํต ๋ด๋ฆผ์ฐจ์์ผ๋ก ์กฐํ๋ฅผ ํ๊ณ ์๊ธธ๋ DESC๋ก ์ค์ ํ๋ค.)
๊ฐ์ ํ EXPLAIN ์์ฝ ๋น๊ต
| ๊ตฌ๋ถ | type | key | rows | Extra |
| Before | ALL | NULL | 2๋ง+ | Using where; Using filesort |
| After | ref | IDX_locations_parent_created | ์์ญ~์๋ฐฑ | Using where (filesort ์ ๊ฑฐ |
โ LEFT JOIN ์กฐ๊ฑด์ด ์ฌ๋ฐ๋ฅด๋๋ผ๋ WHERE ์ ํํฐ๋ง ์ปฌ๋ผ์ด ์ธ๋ฑ์ค๊ฐ ์์ผ๋ฉด ์กฐ์ธ ๋น์ฉ์ด ๊ธ๊ฒฉํ ์ฆ๊ฐํจ
โ ORDER BY ํจํด์ ๋ณตํฉ ์ธ๋ฑ์ค ์ค๊ณ๋ก ์ ๋ ฌ ๋น์ฉ์ ํฌ๊ฒ ์ค์ผ ์ ์์
2๏ธโฃ
SELECT *
FROM LOCATION_REQUESTS
WHERE PARENT_ID = 'user_parent_001'
AND CHILD_ID = 'user_child_002';
์ด ์ฟผ๋ฆฌ๋ ๋ถ๋ชจ ์ฌ์ฉ์์ ์๋ ์ฌ์ฉ์์ ์์น ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๋ก์ง์ผ๋ก ๋ ๊ฐ์ ์ฌ์ฉ์ ID๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋จ์ผ ๋ ์ฝ๋๋ฅผ ์กฐํํ๋ค.
EXPLIAN ๊ฒฐ๊ณผ์์ type = ALL ์ด ๋ฐ์ํ๊ณ ์์๊ณ , possible_keys, key ๊ฐ ๋ชจ๋ NULL ์ํ๋ก ์ธ๋ฑ์ค๊ฐ ์์ ์กด์ฌํ์ง ์์์์ ํ์ธํ๋ค.
CREATE INDEX IDX_location_request_parent_child
ON LOCATION_REQUESTS (PARENT_ID, CHILD_ID);
๋ฐ๋ผ์ ์ด๋ ๊ฒ PARENT_ID, CHILD_ID๋ก ๋ณตํฉ ์ธ๋ฑ์ค๋ฅผ ์ค์ ํด ํ์ค์บ ๋ฐฉ์ง๋ฅผ ํด์คฌ๋ค.
๊ฐ์ ํ EXPLAIN ์์ฝ ๋น๊ต
| ๊ตฌ๋ถ | type | possible_keys | key | rows | Extra |
| Before | ALL | NULL | NULL | 35,200 | Using where |
| After | ref | IDX_location_request_parent_child | IDX_location_request_parent_child | 1 | Using where |
type ALL ์์ ref ๋ก ๊ฐ์ ํ์ผ๋ฉฐ, rows ๋ฅผ ๋ณด๋ฉด 35,200 ๊ฑด ์กฐํํ๋ ๊ฒฐ๊ณผ๋ฅผ 1๋ก ์ ํํ ๋งค์นญ๋ ์ ์๋๋ก ํ๋ค.
3๏ธโฃ ์ธ๋ฑ์ค ์ถ๊ฐ๊ฐ ๋ถํ์ํ ์์
SELECT *
FROM INQUIRIES
WHERE USER_ID = 'user_001'
ORDER BY CREATED_AT DESC;
์ด ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ์๋ ์ฌ์ฉ์์ ๋ฌธ์ ๋ด์ญ์ ์กฐํํ๋ SELECT ๋ฌธ์ผ๋ก ์ค์ ํ ์ด๋ธ ๋ฐ์ดํฐ๋ ์ฝ 700ํ ์ ๋๋ก ๋งค์ฐ ์ ์ ํธ์ด์๋ค.
์คํ ๊ณํ์ ๋ณด๋ฉด type = ALL, key = NULL ๋ก ํ์๋์ด ์ธ๋ฑ์ค๊ฐ ์ฌ์ฉ๋์ง ์์์ง๋ง
rows ๊ฐ์ด 700์ผ๋ก ์๊ธฐ ๋๋ฌธ์ ํ์ค์บ์ ๋น์ฉ์ด ํฌ์ง ์์๋ค.
๋ฐ๋ผ์ ์ธ๋ฑ์ค๊ฐ ์๋ค๊ณ ํด๋ ์ ์ฒด ์ค์บ๋ ๋น ๋ฅธ ์ํฉ์ด๋ผ ์ธ๋ฑ์ค๋ฅผ ๋ฐ๋ก ์ถ๊ฐํ์ง ์์๋ค.
โ ํ ์ด๋ธ ํฌ๊ธฐ๊ฐ ์๋ฐฑ ํ ์์ค์ด๋ผ๋ฉด, ํ ์ค์บ์ด ์ธ๋ฑ์ค ํ์๋ณด๋ค ๋น ๋ฅผ ์ ์๋ค.
โ ๊ทธ๋ฆฌ๊ณ ์ตํฐ๋ง์ด์ ๊ฐ ํต๊ณ์ ์ผ๋ก '์ธ๋ฑ์ค ํ์ + ๋๋ค I/O' ๋น์ฉ์ด '์์ฐจ I/O' ๋ณด๋ค ํฌ๋ค๊ณ ํ๋จ๋๋ฉด ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
โญ ์ธ๋ฑ์ค๋ฅผ ํญ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์๋๋ผ ๋ฐ์ดํฐ ์์ด ๋ง๊ณ , ํํฐ๋ง ๊ฒฐ๊ณผ๊ฐ ์ ์ฒด์ 10% ๋ฏธ๋ง์ผ ๋ ๋ง๋ค์ด์ผ ํ๋ค !!
์์ ํ ์ด๋ธ์ ํ ์ค์บ์ด ๋น ๋ฅด๊ณ , ์ธ๋ฑ์ค๋ ์คํ๋ ค ์ฐ๊ธฐ(INSERT/UPDATE) ๋ถํ๋ฅผ ๋๋ฆด ์๋ ์๋ค.
๐ก ์๋ก ์๊ฒ๋ ์
1๏ธโฃ ํ์ค์บ์ด ํญ์ ๋์ ๊ฑด ์๋๋ค.
ํ์ค์บ์ด๋ฉด ๋๋ ๋ฌด์กฐ๊ฑด ๊ฐ์ ์ ํด์ผ ํ๋ค๊ณ ์๊ฐ์ ํ๋ค. ํ์ง๋ง ํ ์ด๋ธ ํฌ๊ธฐ๊ฐ ์๋ฐฑ ํ ์์ค์ด๋ผ๋ฉด ์ตํฐ๋ง์ด์ ๊ฐ ํ์ค์บ์ ๋ ํจ์จ์ ์ผ๋ก ํ๋จํ ์๋ ์๋ค๋ ๊ฑธ ์๊ฒ ๋๋ค.
type=ALL ๋ง ๋ณด๊ณ ์ธ๋ฑ์ค๋ฅผ ๋ฌด์กฐ๊ฑด ์ถ๊ฐํ๋ ๊ฒ ์๋๋ผ ๋ฐ์ดํฐ ์๊ณผ ์ ๊ทผ ๋น๋๋ฅผ ํจ๊ป ๊ณ ๋ คํด์ผ ํจ์ ์๊ฒ ๋๋ค.
2๏ธโฃ ๋ณตํฉ ์ธ๋ฑ์ค๋ ๋จ์ผ ์ธ๋ฑ์ค๋ณด๋ค "์ฟผ๋ฆฌ ๊ตฌ์กฐ"์ ๋ง์ถฐ ์ค๊ณํด์ผ ํ๋ค.
์์ ์์์ฒ๋ผ (PARENT_ID, CREATED_AT DESC) ์ฒ๋ผ WHERE + ORDER BY ์กฐํฉ์ผ๋ก ๋ง์ถฐ๋๋ฉด filesort ์์ด ์ ๋ ฌ์ด ๋ ๊ฒ์ฒ๋ผ ์ฟผ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋จผ์ ๋ณด๊ณ ์ธ๋ฑ์ค๋ฅผ ์ค๊ณํด์ผ ํจ์ ๋ฐฐ์ ๋ค.
3๏ธโฃ ์ธ๋ฑ์ค๋ ์ฑ๋ฅ๋ฟ ์๋๋ผ ์ฐ๊ธฐ ๋ถํ๋ ๊ณ ๋ คํด์ผ ํ๋ค.
๋ก๊ทธ์ธ์ฒ๋ผ ์์ฒญ ์๊ฐ ๋์ ์กฐํ๋ ์ธ๋ฑ์ค๊ฐ ํ์๊ฒ ์ง๋ง, ํ๋ฃจ ๋ช ๋ฒ ํธ์ถ๋์ง ์๋ ์ฟผ๋ฆฌ์ ์ธ๋ฑ์ค๋ฅผ ๋๋ฆฌ๋ ๊ฑด ์คํ๋ ค ๋ ๋ค๋ฅธ ๊ด๋ฆฌ ํฌ์ธํธ๊ฐ ๋ ์๋ ์์์ ์๊ฒ ๋๋ค. (์ธ๋ฑ์ค๊ฐ ๋ง๋ฅ์ด ์๋๋ผ๋ ์ )
๐ฉ๐ป๐ป ๊ฒฐ๋ก (์ค์ ์ ์ฉ ์ฌ๋ถ / ์ด์ ๊ณ ๋ ค)
์ค๋ ๋ถ์ํ ์ธ๋ฑ์ค ํ๋ณด๋ฅผ ๋ฐ๋ก ์ด์ DB์ ์ ์ฉํ๊ธฐ๋ ๋น์ฐํ ์ด๋ ต๋ค.
์ ๊ฒ ์ฌํญ๋ค์ ์ฒดํฌ ํ ์ ์ฉํ๋ ๊ฒ ๋ง๊ฒ ๋ค๋ ํ๋จ์ด ๋๋ ์ธ๋ฑ์ค๋ค์ ์ถ๊ฐ๋ฅผ ํ ์์ ์ด๋ค.
[์ ๊ฒ ์ฌํญ]
โ ํธ๋ํฝ ์์ ์ฟผ๋ฆฌ ์ฌ๋ถ
โ์ฐ๊ธฐ ๋ถํ ์ฆ๊ฐ ๊ฐ๋ฅ์ฑ ์ฌ๋ถ
โ์ค๋ณต ์ธ๋ฑ์ค ์ฌ๋ถ
โ๋ฐ์ดํฐ ๊ท๋ชจ (ํ ์ด๋ธ ๊ฑด์)
๐ค๐ญ
์ค๋์ ์ด์์ค์ธ ์๋น์ค์ ์ฃผ์ SELECT ์ฟผ๋ฆฌ๋ค์ ์คํ ๊ณํ์ EXPLAIN ์ผ๋ก ๋ถ์ํ๊ณ , ์ธ๋ฑ์ค ํจ์จ์ ํ์ธํด๋ดค๋ค.
์ผ๋ถ ์ฟผ๋ฆฌ์์ ์ธ๋ฑ์ค ๋ฏธ์ฌ์ฉ ์ค ๋ฑ์ ๋นํจ์จ์ ์ธ ์ฟผ๋ฆฌ๋ค์ ํ์ธํ๊ณ , ๊ฐ ์ฟผ๋ฆฌ์ ๋ง๊ฒ ๋ณตํฉ ์ธ๋ฑ์ค ์์ฑ, WHERE ์กฐ๊ฑด ๊ตฌ์กฐ ๊ฐ์ ๋ฐฉํฅ์ ์ ๋ฆฌํ๋ค.
์ด๋ฒ ๋ถ์์ ํตํด์ ๋จ์ํ ์ฟผ๋ฆฌ ์ฑ๋ฅ ๊ฐ์ ๋ฟ๋ง ์๋๋ผ, DB ์ตํฐ๋ง์ด์ ๊ฐ ์ด๋ป๊ฒ ํ๋จํ๋์ง๋ฅผ ์ ์ ์์๋ ์๊ฐ์ด์๋ค !
๋ํ ๊ฐ๋ฐ ์๋ฒ์์ ๋์ ์ ํ๋ค๊ณ ์ธ๋ฑ์ค์ ํ์ ์ฌ๋ถ๋ฅผ ๋ชจ๋ฅด๊ณ ๋์ด๊ฐ ์ฟผ๋ฆฌ๋ค๋ ๋ฐ๊ฒฌํ ์ ์์๋ค..
์์ผ๋ก ์ ๊ท ์๋น์ค ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ๋๋ ์ข ๋ ํจ์จ์ ์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ์ ์๋๋ก ์ ๊ฒฝ์จ์ผ๊ฒ ๋ค๋ ๊ตํธ์ ์ป์๋ค.
'๋ฐ์ดํฐ๋ฒ ์ด์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [MongoDB] mongo.exe ํ์ผ ์์ ํด๊ฒฐ ๋ฐฉ๋ฒ (mongodb 6.0 ๋ฒ์ ) (0) | 2023.12.15 |
|---|---|
| [MongoDB] ์๋์ฐ์ MongoDB ์ค์น ๋ฐฉ๋ฒ (Community Edition 6.0.12) (0) | 2023.12.14 |
| [Database] JOIN ๊ฐ๋ ๊ณผ ์ข ๋ฅ (๋ด๋ถ์กฐ์ธ INNER JOIN, ์ธ๋ถ์กฐ์ธ OUTER JOIN) (0) | 2021.10.22 |
| [oracle] ์ํ์ค sequence (0) | 2021.10.21 |
| [oracle] ๋ทฐ view (0) | 2021.10.21 |