You are on page 1of 2

MySQL – Bài thực hành số 8

Nội dung: MySQL Partitioning


1. Phân mảnh bảng rental dựa vào cột rental_date theo khoảng năm cho thuê.
ALTER TABLE rental_tmp
PARTITION BY RANGE (YEAR(rental_date))
(
PARTITION p0 VALUES LESS THAN (2006),
PARTITION p1 VALUES LESS THAN (2007)
);
2. Truy vấn bảng INFORMATION_SCHEMA.PARTITIONS để xem kết quả phân mảnh.
Kiểm tra truy vấn theo năm sử dụng lệnh EXPLAIN PARTITIONS SELECT
SELECT *
FROM INFORMATION_SCHEMA.PARTITIONS
WHERE TABLE_NAME = 'rental_tmp';
EXPLAIN PARTITIONS SELECT * FROM rental_tmp WHERE year(rental_date) = 2005;
3. Thêm phân vùng mới cho năm 2007.
ALTER TABLE rental_tmp
ADD PARTITION (PARTITION p2 VALUES LESS THAN (2008));
4. Thêm dữ liệu thuê film năm 2007. Kiểm tra truy vấn năm 2007 sử dụng lệnh EXPLAIN
PARTITIONS SELECT
INSERT INTO rental_tmp(rental_date, inventory_id, customer_id, return_date,
staff_id)
VALUES
('2007-01-01 10:00:00', 1, 1, '2007-01-02 12:00:00', 1),
('2007-02-03 15:30:00', 2, 2, '2007-02-04 18:30:00', 2),
('2007-03-05 09:45:00', 3, 3, '2007-03-06 11:45:00', 1),
('2007-04-07 14:15:00', 4, 4, '2007-04-08 16:15:00', 2),
('2007-05-09 18:30:00', 5, 5, '2007-05-10 20:30:00', 1);
EXPLAIN PARTITIONS SELECT * FROM rental_tmp WHERE YEAR(rental_date) = 2007;
5. Cấu hình thư mục lưu trữ khác nhau cho các phân vùng khác nhau.

alter table rental_tmp reorganize partition p0 into (partition p0 values less than (2006)
data directory = "D:/DB/MySQL/Data /Part0/";
alter table rental_tmp reorganize partition p1 into (partition p1 values less than (2007)
data directory = "D:/DB/MySQL/Data /Part1/";

alter table rental_tmp reorganize partition p2 into (partition p2 values less than (2008)
data directory = "D:/DB/MySQL/Data /Part2/";

You might also like