MySQL ์ด๋ฒคํธ ์ฝ๊ฒ ์ดํดํ๊ธฐ!
MySQL ์ด๋ฒคํธ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํน์ ์๊ฐ์ ์๋์ผ๋ก ์คํ๋๋ ์์ฝ ์์
์ด์์. ์ด ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉด ๋ฐ๋ณต์ ์ธ ๋ฐ์ดํฐ ๊ด๋ฆฌ ์์
์ ์๋ํํ ์ ์๋ต๋๋ค. ์ด๋ฒ ์์์์๋ ์ด๋ฒคํธ์ ๊ฐ๋
๋ถํฐ ์์ฑ, ์์ , ์ญ์ , ํ์ฑํ/๋นํ์ฑํ ๋ฐฉ๋ฒ๊น์ง ์ฐจ๊ทผ์ฐจ๊ทผ ์๋ ค์ค์.
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
6.
7.
8.
9.
MySQL ์ด๋ฒคํธ๋? [00:00:14]
โข
์ด๋ฒคํธ(Event): ํน์ ์๊ฐ์ ์๋์ผ๋ก ์คํ๋๋ ์์ฝ ์์
์ด์์.
โข
์๋ฅผ ๋ค์ด, ๋งค์ผ ์์ ์ ์ค๋๋ ๋ก๊ทธ๋ฅผ ์ญ์ ํ๋ ์์
์ ์๋์ผ๋ก ํ ์ ์์ฃ .
โข
์ด๋ฒคํธ ์ค์ผ์ค๋ฌ๊ฐ ์ผ์ ธ ์์ด์ผ ์ด๋ฒคํธ๊ฐ ์๋ํด์.
โข
์ผํ์ฑ ์คํ๋ ๊ฐ๋ฅํ๊ณ , ๋ฐ๋ณต ์คํ๋ ๊ฐ๋ฅํด์.
๋น์ ํ์๋ฉด, ์ค๋งํธํฐ ์๋์ฒ๋ผ ์ ํด์ง ์๊ฐ์ ์๋์ผ๋ก ์ผ์ ์ฒ๋ฆฌํด ์ฃผ๋ ๊ธฐ๋ฅ์ด์์!
์ด๋ฒคํธ ์์ฑ๊ณผ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ [00:01:20]
โข
CREATE EVENTย ๊ตฌ๋ฌธ์ผ๋ก ์ด๋ฒคํธ๋ฅผ ๋ง๋ค์ด์.
โข
์์: ๋งค์ผ ์์ ์ 30์ผ ์ด์ ๋ก๊ทธ๋ฅผ ์ญ์ ํ๋ ์ด๋ฒคํธ ์์ฑ
โข
ON SCHEDULE EVERY 1 DAY STARTS '2025-05-02'ย ์ฒ๋ผ ์ฃผ๊ธฐ์ ์์์ผ์ ์ค์ ํด์.
โข
์ด๋ฒคํธ ์์๋ ์คํํ SQL ๋ช
๋ น์ด(์: DELETE FROM ๋ก๊ทธํ
์ด๋ธ WHERE ๋ ์ง < ์ค๋ - 30์ผ)๋ฅผ ๋ฃ์ด์.
์ด๋ฒคํธ ์์ ๊ณผ ์ญ์ ๋ฐฉ๋ฒ [00:03:18]
โข
ALTER EVENT๋ก ์ด๋ฒคํธ ์ฃผ๊ธฐ๋ ๋ด์ฉ์ ๋ณ๊ฒฝํ ์ ์์ด์.
โข
์์: 2์ผ๋ง๋ค 60์ผ ์ด์ ๋ก๊ทธ๋ฅผ ์ญ์ ํ๋๋ก ๋ณ๊ฒฝ
โข
DROP EVENT๋ก ์ด๋ฒคํธ๋ฅผ ์ญ์ ํ ์ ์์ด์.
โข
์ด๋ฒคํธ๋ฅผ ๋นํ์ฑํํ๊ฑฐ๋ ๋ค์ ํ์ฑํํ๋ ๊ฒ๋ ๊ฐ๋ฅํด์.
์ด๋ฒคํธ ํ์ฑํ/๋นํ์ฑํ์ ์ค์ผ์ค๋ฌ ์ํ ํ์ธ [00:03:44]
โข
์ด๋ฒคํธ๊ฐย ํ์ฑํ(ENABLE)ย ๋์ด ์์ด์ผ ์คํ๋ผ์.
โข
์ด๋ฒคํธ ์ค์ผ์ค๋ฌ ์์ฒด๋ ์ผ์ ธ ์์ด์ผ ์ด๋ฒคํธ๊ฐ ์๋ํด์.
โข
์ํ ํ์ธ ๋ช
๋ น์ด๋ก ์ค์ผ์ค๋ฌ๊ฐ ์ผ์ ธ ์๋์ง ํ์ธ ๊ฐ๋ฅ
โข
์ด๋ฒคํธ๋ณ๋ก ํ์ฑํ/๋นํ์ฑํ ์ค์ ๋ ๊ฐ๋ฅํด์.
์ค์ ์์ : ๊ธ์ฌ ์ด๋ ฅ ๋ฐฑ์
๊ณผ ํด์ฌ ์ง์ ์์นด์ด๋ธ [00:03:53]
โข
๊ธ์ฌ ์ด๋ ฅ์ ํ ๋ฌ ๋จ์๋ก ๋ฐฑ์
ํ๋ ์ด๋ฒคํธ ๋ง๋ค๊ธฐ
โข
ํด์ฌ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋ ํ
์ด๋ธ์ ์ ์ฅ(์์นด์ด๋ธ) ํ ์๋ณธ์์ ์ญ์ ํ๋ ์์
โข
INSERT INTO ์์นด์ด๋ธ_ํ
์ด๋ธ SELECT ... WHERE ์กฐ๊ฑดย ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌ
โข
์ดํ ์๋ณธ ํ
์ด๋ธ์์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํด ๋ฐ์ดํฐ ์ ๋ฆฌ
ํ์ฌ์์ ์ค๋๋ ๋ฐ์ดํฐ๋ ํด์ฌ์ ์ ๋ณด๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐ ๋ฑ ๋ง๋ ๊ธฐ๋ฅ์ด์์!
๋ถ์๋ณ ํ๊ท ๊ธ์ฌ ํต๊ณ ์๋ ์
๋ฐ์ดํธ [00:08:51]
โข
๋ถ์๋ณ ํ๊ท ๊ธ์ฌ๋ฅผ ์ผ์ฃผ์ผ๋ง๋ค ๊ณ์ฐํด ํต๊ณ ํ
์ด๋ธ์ ์ ์ฅํ๋ ์ด๋ฒคํธ
โข
์ด๋ ๊ฒ ํ๋ฉด ๋งค๋ฒ ์ง์ ๊ณ์ฐํ์ง ์์๋ ์ต์ ํต๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์กฐํ ๊ฐ๋ฅ
โข
UI์์๋ ๋จ์ํ ํต๊ณ ํ
์ด๋ธ์ ์กฐํํด ์ฐจํธ๋ก ๋ณด์ฌ์ฃผ๋ฉด ๋!
์ด๋ฒคํธ ํ์ธ ๋ฐ ๊ด๋ฆฌ ๋ฐฉ๋ฒ (์ํฌ๋ฒค์น ํ์ฉ) [00:11:13]
โข
MySQL ์ํฌ๋ฒค์น์์ ์ด๋ฒคํธ๋ ํธ๋ฆฌ๊ฑฐ์ฒ๋ผ ๋ณ๋ ํญ์ด ์์ง๋ง, ์ฟผ๋ฆฌ๋ก ํ์ธ ๊ฐ๋ฅ
โข
information_schema.EVENTSย ํ
์ด๋ธ์์ ํ์ฌ ๋ฑ๋ก๋ ์ด๋ฒคํธ ๋ชฉ๋ก์ ์กฐํํ ์ ์์ด์.
โข
ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์ ํํ ์ ํํด์ผ ์ด๋ฒคํธ๊ฐ ์ ๋๋ก ์กฐํ๋ผ์.
์ด๋ฒคํธ ์ค์ผ์ค๋ฌ ์ํ ํ์ธ๊ณผ ์ ์ด [00:14:22]
โข
SHOW VARIABLES LIKE 'event_scheduler';ย ๋ช
๋ น์ด๋ก ์ค์ผ์ค๋ฌ ์ํ ํ์ธ
โข
SET GLOBAL event_scheduler = ON;ย ์ผ๋ก ์ค์ผ์ค๋ฌ ์ผ๊ธฐ
โข
์ด๋ฒคํธ๋ณ๋กย ALTER EVENT ์ด๋ฒคํธ๋ช
ENABLE/DISABLE;ย ๋ก ํ์ฑํ/๋นํ์ฑํ ์กฐ์ ๊ฐ๋ฅ
โข
์ค์ผ์ค๋ฌ๊ฐ ๊บผ์ ธ ์์ผ๋ฉด ์ด๋ฒคํธ๊ฐ ์๋ฌด๋ฆฌ ํ์ฑํ๋ผ๋ ์คํ๋์ง ์์ผ๋ ๊ผญ ์ผ์ผ ํด์!
๋ง๋ฌด๋ฆฌ ๋ฐ ํ์ฉ ํ [00:17:11]
โข
์ด๋ฒคํธ๋ ๋ฐ๋ณต ์์
์ ์๋ํํด ์
๋ฌด ํจ์จ์ ํฌ๊ฒ ๋์ฌ์ค์.
โข
ํ
์คํธํ ๋๋ ์งง์ ์ฃผ๊ธฐ๋ก ์ค์ ํด ๋์ ์ฌ๋ถ๋ฅผ ํ์ธํด๋ณด์ธ์.
โข
ํ๋ก์ ํธ์ ๋ง๊ฒ ๋ค์ํ ์๋ํ ์์
์ ์ด๋ฒคํธ๋ก ๊ตฌํํด ๋ณด์ธ์!
์์ฝ
MySQL ์ด๋ฒคํธ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ํน์ ์๊ฐ์ ์๋์ผ๋ก ์คํ๋๋ ์์ฝ ์์
์
๋๋ค. ์ด๋ฅผ ํตํด ๋ก๊ทธ ์ ๋ฆฌ, ๋ฐฑ์
, ํต๊ณ ์
๋ฐ์ดํธ ๋ฑ ๋ฐ๋ณต์ ์ธ ์์
์ ์๋ํํ ์ ์์ด์. ์ด๋ฒคํธ ์์ฑ, ์์ , ์ญ์ , ํ์ฑํ/๋นํ์ฑํ ๋ฐฉ๋ฒ๊ณผ ์ค์ผ์ค๋ฌ ์ํ ํ์ธ ๋ฐฉ๋ฒ์ ์ตํ๋ฉด ๋ฐ์ดํฐ ๊ด๋ฆฌ๊ฐ ํจ์ฌ ํธ๋ฆฌํด์ง๋๋ค. ์์์์ ์๊ฐํ ์ค์ ์์ ๋ฅผ ์ฐธ๊ณ ํด ์ฌ๋ฌ๋ถ ํ๋ก์ ํธ์ ์ ์ฉํด ๋ณด์ธ์!
๊ถ๊ธํ ์ ์์ผ๋ฉด ์ธ์ ๋ ๋๊ธ๋ก ๋ฌผ์ด๋ด ์ฃผ์ธ์! ์ฆ๊ฑฐ์ด ์ฝ๋ฉ ๋์ธ์~ 