์ ์
๋์ฉ๋ ํ
์ด๋ธ์ ์์ ๋จ์๋ก ๋๋์ด ๊ด๋ฆฌํ๋ ๋ฌผ๋ฆฌ์ ์ธ ๋ฐ์ดํฐ ๋ถํ ๋ฐฉ๋ฒ์
๋๋ค.
ํน์ง
โข
๋์ฉ๋ ํ
์ด๋ธ์ ์ฑ๋ฅ ํฅ์
โข
๋ฐ์ดํฐ ์กฐํ ๋ฐ ๊ด๋ฆฌ์ ํจ์จ์ฑ ์ฆ๊ฐ
โข
๋ฐฑ์
๊ณผ ๋ณต๊ตฌ ์์
์ ํธ์์ฑ
โข
ํํฐ์
๋จ์์ ๋
๋ฆฝ์ ์ธ ๊ด๋ฆฌ ๊ฐ๋ฅ
โข
ํน์ ํํฐ์
๋ง ๊ฒ์ํ์ฌ ์ฟผ๋ฆฌ ์ฑ๋ฅ ๊ฐ์
์ฝ๋
ํํฐ์ ์์ฑ
CREATE TABLE employees (
id INT,
name VARCHAR(50),
dept VARCHAR(50),
salary INT,
hire_date DATE
)
PARTITION BY RANGE (YEAR(hire_date)) (
PARTITION p0 VALUES LESS THAN (2020),
PARTITION p1 VALUES LESS THAN (2021),
PARTITION p2 VALUES LESS THAN (2022),
PARTITION p3 VALUES LESS THAN MAXVALUE
);
SQL
๋ณต์ฌ
ํํฐ์ ์์
-- ํํฐ์
์ถ๊ฐ
ALTER TABLE employees
ADD PARTITION (PARTITION p4 VALUES LESS THAN (2023));
-- ํํฐ์
์ญ์
ALTER TABLE employees
DROP PARTITION p0;
SQL
๋ณต์ฌ
ํํฐ์ ์ญ์
-- ํํฐ์
์ ๊ฑฐ (ํ
์ด๋ธ์ ์ ์ง)
ALTER TABLE employees REMOVE PARTITIONING;
-- ํ
์ด๋ธ๊ณผ ํจ๊ป ํํฐ์
์ญ์
DROP TABLE employees;
SQL
๋ณต์ฌ
ํํฐ์ ์กฐํ
-- ํน์ ์ฐ๋์ ์ง์ ์กฐํ
SELECT * FROM employees
WHERE YEAR(hire_date) = 2021;
-- ํน์ ํํฐ์
์ ๋ฐ์ดํฐ๋ง ์กฐํ
SELECT * FROM employees PARTITION (p1);
-- ํํฐ์
์ ๋ณด ํ์ธ
SELECT
PARTITION_NAME,
PARTITION_DESCRIPTION,
TABLE_ROWS
FROM INFORMATION_SCHEMA.PARTITIONS
WHERE TABLE_NAME = 'employees';
SQL
๋ณต์ฌ
์ ์ฟผ๋ฆฌ๋ค์ ๊ฐ๊ฐ:
โข
2021๋
์ ์
์ฌํ ์ง์ ๋ฐ์ดํฐ ์กฐํ
โข
p1 ํํฐ์
(2020-2021๋
)์ ์๋ ๋ชจ๋ ๋ฐ์ดํฐ ์กฐํ
โข
ํํฐ์
์ ๊ตฌ์กฐ์ ๊ฐ ํํฐ์
์ ์ ์ฅ๋ ํ ์ ํ์ธ
โข
์ด๋ ํน์ ํํฐ์
๋ง ์ง์ ์ง์ ํ์ฌ ์กฐํํ๋ ๋ฐฉ๋ฒ์ผ๋ก, ๋๋ฒ๊น
์ด๋ ํํฐ์
๋ณ ๋ฐ์ดํฐ ํ์ธ์ฉ์ผ๋ก ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
โข
์ค์ ์ด์ ํ๊ฒฝ์์๋ WHERE ์ ์์ ํํฐ์
ํค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ผ๋ฐ์ ์ด๋ฉฐ, ์ตํฐ๋ง์ด์ ๊ฐ ์๋์ผ๋ก ์ต์ ์ ์คํ ๊ณํ์ ์ ํํ๋๋ก ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.