SlideShare a Scribd company logo
1 of 15
Hệ quản trị cơ sở dữ liệu

Partitioning

Dư Phương Hạnh
Bộ môn Hệ thống thông tin
Khoa CNTT, trường Đại học Công nghệ
Đại học Quốc gia Hanoi
hanhdp@vnu.edu.vn
Phân mảnh
 Các phần của bảng được lưu như các bảng riêng
biệt tại các vị trí khác nhau
 Cho phép phân phối các phần của bảng trên hệ
thống file tuân theo các luật được thiết lập.
 Luật phân chia dữ liệu được chọn bởi người dùng
được gọi là hàm phân mảnh (partitioning function)

2

Hệ quản trị CSDL @ BM HTTT
Minh họa

3

Hệ quản trị CSDL @ BM HTTT
Một số ưu điểm của phân mảnh
 Phân mảnh giúp lưu dữ liệu trong một bảng lớn hơn trên một đĩa
hoặc phân vùng hệ thống file
 Dữ liệu không còn hữu ích có thể thường xuyên loại bỏ dễ dàng
bằng cách xóa phân vùng
 Một số truy truy vấn có thể tối ưu nếu dữ liệu thỏa mãn mệnh đề
WHERE được xác định lưu trữ trong một hoặc nhiều phân vùng
 Do các phân vùng có thể sửa đổi sau khi bảng được tạo, có thể tổ
chức lại dữ liệu để nâng cao các truy vấn thường xuyên

4

Hệ quản trị CSDL @ BM HTTT
Các kiểu phân mảnh
 Khoảng (RANGE): gán các dòng vào các phân mảnh dựa vào giá
trị của cột nằm trong một khoảng
 Danh sách (List): tương tự như khoảng, nhưng danh sách là một
tập các giá trị rời rạc
 Băm (HASH): dựa trên giá trị trả lại bởi biểu thức định nghĩa bởi
người dùng (tạo ra giá trị nguyên, không âm)
 Khóa (KEY): tương tự phân mảnh bởi băm, ngoại trừ hàm băm
được cung cấp bởi MySQL server, đảm bảo kết quả trả lại là số
nguyên bất kỳ kiểu dữ liệu của cột. Bất kỳ các cột được sử dụng
như là khóa phân mảnh cần phải là một phần hoặc toàn bộ khóa
chính của bảng

5

Hệ quản trị CSDL @ BM HTTT
Ví dụ
CREATE TABLE members (
firstname VARCHAR(25) NOT NULL,
lastname VARCHAR(25) NOT NULL,
username VARCHAR(16) NOT NULL,
email VARCHAR(35),
joined DATE NOT NULL
)
PARTITION BY KEY(joined) PARTITIONS 6;

6

Hệ quản trị CSDL @ BM HTTT
Ví dụ
CREATE TABLE members (
firstname VARCHAR(25) NOT NULL,
lastname VARCHAR(25) NOT NULL,
username VARCHAR(16) NOT NULL,
email VARCHAR(35),
joined DATE NOT NULL
)
PARTITION BY RANGE( YEAR(joined) )(
PARTITION p0 VALUES LESS THAN (1960),
PARTITION p1 VALUES LESS THAN (1970),
PARTITION p2 VALUES LESS THAN (1980),
PARTITION p3 VALUES LESS THAN (1990),
PARTITION p4 VALUES LESS THAN MAXVALUE
);
7

Hệ quản trị CSDL @ BM HTTT
Ví dụ
CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT, store_id INT
) PARTITION BY LIST(store_id) (
PARTITION pNorth VALUES IN (3,5,6,9,17),
PARTITION pEast VALUES IN (1,2,10,11,19,20),
PARTITION pWest VALUES IN (4,12,13,14,18),
PARTITION pCentral VALUES IN (7,8,15,16)
);

8

Hệ quản trị CSDL @ BM HTTT
Ví dụ
CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT, store_id INT
)
PARTITION BY HASH( YEAR(hired) )
PARTITIONS 4;
9

Hệ quản trị CSDL @ BM HTTT
EXPLAIN PARTITIONS
 Sử dụng EXPLAIN PARTITIONS SELECT để xem
các phân vùng nào được sử dụng trong lệnh
SELECT

10

Hệ quản trị CSDL @ BM HTTT
Quản lý phân mảnh
 MySQL 5.5 hỗ trợ một số cách để sửa đổi các bảng
phân mảnh: thêm, xóa, định nghĩa lại, hòa trộn, tách
các mảnh đã tồn tại sử dụng câu lệnh ALTER
TABLE
– PARTITION BY, ADD PARTITION, DROP PARTITION,
REORGANIZE PARTITION, COALESCE PARTITION

11

Hệ quản trị CSDL @ BM HTTT
Ví dụ
 ALTER TABLE trb3 PARTITION BY KEY(id)
PARTITIONS 2;
 ALTER TABLE tr DROP PARTITION p2;
 ALTER TABLE ADD PARTITION (PARTITION p3
VALUES LESS THAN (2000));

12

Hệ quản trị CSDL @ BM HTTT
Thông tin về các phân mảnh

 SHOW CREATE TABLE
 SHOW TABLE STATUS
 Truy vấn bảng
INFORMATION_SCHEMA.PARTITIONS

13

Hệ quản trị CSDL @ BM HTTT
Giới hạn và hạn chế của phân mảnh
 Thao tác phân mảnh, truy vấn có xu hướng nhanh
hơn với bảng MyISAM so với các bảng InnoDB
 Số lượng phân mảnh lớn nhất cho mỗi bảng là
1024
 Không hỗ trợ khóa ngoài
 Các bảng phân mảnh không hỗ trợ tìm kiếm FULL
TEXT

14

Hệ quản trị CSDL @ BM HTTT
Tài liệu tham khảo
 http://www.mysql.com
 http://dev.mysql.com/doc/refman/5.5/en/
 http://www.learn-mysql-tutorial.com/

15

Hệ quản trị CSDL @ BM HTTT

More Related Content

What's hot

Chuong12
Chuong12Chuong12
Chuong12
na
 

What's hot (20)

Tuning Autovacuum in Postgresql
Tuning Autovacuum in PostgresqlTuning Autovacuum in Postgresql
Tuning Autovacuum in Postgresql
 
Postgresql Database Administration Basic - Day1
Postgresql  Database Administration Basic  - Day1Postgresql  Database Administration Basic  - Day1
Postgresql Database Administration Basic - Day1
 
Sql query patterns, optimized
Sql query patterns, optimizedSql query patterns, optimized
Sql query patterns, optimized
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
 
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTBài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
 
Ebook hướng dẫn lập trình từ điển
Ebook hướng dẫn lập trình từ điểnEbook hướng dẫn lập trình từ điển
Ebook hướng dẫn lập trình từ điển
 
Co so du lieu phan tan
Co so du lieu phan tanCo so du lieu phan tan
Co so du lieu phan tan
 
Tìm hiểu về OpenStack
Tìm hiểu về OpenStackTìm hiểu về OpenStack
Tìm hiểu về OpenStack
 
Get to know PostgreSQL!
Get to know PostgreSQL!Get to know PostgreSQL!
Get to know PostgreSQL!
 
Oracle sql high performance tuning
Oracle sql high performance tuningOracle sql high performance tuning
Oracle sql high performance tuning
 
MYSQL
MYSQLMYSQL
MYSQL
 
Introduction to Cassandra
Introduction to CassandraIntroduction to Cassandra
Introduction to Cassandra
 
PostgreSQL HA
PostgreSQL   HAPostgreSQL   HA
PostgreSQL HA
 
Chuong12
Chuong12Chuong12
Chuong12
 
Lưu trữ và xử lý dữ liệu trong điện toán đám mây
Lưu trữ và xử lý dữ liệu trong điện toán đám mâyLưu trữ và xử lý dữ liệu trong điện toán đám mây
Lưu trữ và xử lý dữ liệu trong điện toán đám mây
 
AWS July Webinar Series: Amazon Redshift Optimizing Performance
AWS July Webinar Series: Amazon Redshift Optimizing PerformanceAWS July Webinar Series: Amazon Redshift Optimizing Performance
AWS July Webinar Series: Amazon Redshift Optimizing Performance
 
TiDB Introduction
TiDB IntroductionTiDB Introduction
TiDB Introduction
 
PostgreSQL- An Introduction
PostgreSQL- An IntroductionPostgreSQL- An Introduction
PostgreSQL- An Introduction
 
redis 소개자료 - 네오클로바
redis 소개자료 - 네오클로바redis 소개자료 - 네오클로바
redis 소개자료 - 네오클로바
 
Huong dan dung index_oracle
Huong dan dung index_oracleHuong dan dung index_oracle
Huong dan dung index_oracle
 

Viewers also liked (20)

2.1 view
2.1 view2.1 view
2.1 view
 
2.2 cac chuong trinh my sql
2.2 cac chuong trinh my sql2.2 cac chuong trinh my sql
2.2 cac chuong trinh my sql
 
01 gioithieu
01 gioithieu01 gioithieu
01 gioithieu
 
8.replication
8.replication8.replication
8.replication
 
C3 2
C3 2C3 2
C3 2
 
2.3 quan ly truy cap
2.3 quan ly truy cap2.3 quan ly truy cap
2.3 quan ly truy cap
 
6.3 my sql queryoptimization_part2
6.3 my sql queryoptimization_part26.3 my sql queryoptimization_part2
6.3 my sql queryoptimization_part2
 
4.2 transaction
4.2 transaction4.2 transaction
4.2 transaction
 
5. indexing
5. indexing5. indexing
5. indexing
 
6.2 my sql queryoptimization_part1
6.2 my sql queryoptimization_part16.2 my sql queryoptimization_part1
6.2 my sql queryoptimization_part1
 
4.2 transaction 2
4.2 transaction 24.2 transaction 2
4.2 transaction 2
 
6.1 query optimization overview
6.1 query optimization overview6.1 query optimization overview
6.1 query optimization overview
 
7. backup & restore data
7. backup & restore data7. backup & restore data
7. backup & restore data
 
C3 2 (tuan6,7)
C3 2 (tuan6,7)C3 2 (tuan6,7)
C3 2 (tuan6,7)
 
Chuan
ChuanChuan
Chuan
 
Intro to column stores
Intro to column storesIntro to column stores
Intro to column stores
 
C4 1 tuan 14
C4 1 tuan 14C4 1 tuan 14
C4 1 tuan 14
 
C2 2
C2 2C2 2
C2 2
 
C3 1
C3 1C3 1
C3 1
 
Enhanced E-R diagram
Enhanced E-R diagramEnhanced E-R diagram
Enhanced E-R diagram
 

Similar to 9. partitioning

SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
Pix Nhox
 

Similar to 9. partitioning (11)

csdl - buoi7-8-9
csdl - buoi7-8-9csdl - buoi7-8-9
csdl - buoi7-8-9
 
Com201 slide 4
Com201   slide 4Com201   slide 4
Com201 slide 4
 
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
 
Com201 slide 3
Com201   slide 3Com201   slide 3
Com201 slide 3
 
03-Indexes.pdf
03-Indexes.pdf03-Indexes.pdf
03-Indexes.pdf
 
Session 07_Creating and Management DB.ppt
Session 07_Creating and Management DB.pptSession 07_Creating and Management DB.ppt
Session 07_Creating and Management DB.ppt
 
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
 
05 acc201 bai 3_v1.0011103225
05 acc201 bai 3_v1.001110322505 acc201 bai 3_v1.0011103225
05 acc201 bai 3_v1.0011103225
 
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
 
Sql understanding
Sql understandingSql understanding
Sql understanding
 
Bai1 xaydung csdl-access
Bai1 xaydung csdl-accessBai1 xaydung csdl-access
Bai1 xaydung csdl-access
 

More from Trần Thanh (6)

07 trigger view
07 trigger view07 trigger view
07 trigger view
 
4 trigger
4  trigger4  trigger
4 trigger
 
C2 1
C2 1C2 1
C2 1
 
C1
C1C1
C1
 
C4 1
C4 1C4 1
C4 1
 
VoIP with Opensips
VoIP with OpensipsVoIP with Opensips
VoIP with Opensips
 

9. partitioning

  • 1. Hệ quản trị cơ sở dữ liệu Partitioning Dư Phương Hạnh Bộ môn Hệ thống thông tin Khoa CNTT, trường Đại học Công nghệ Đại học Quốc gia Hanoi hanhdp@vnu.edu.vn
  • 2. Phân mảnh  Các phần của bảng được lưu như các bảng riêng biệt tại các vị trí khác nhau  Cho phép phân phối các phần của bảng trên hệ thống file tuân theo các luật được thiết lập.  Luật phân chia dữ liệu được chọn bởi người dùng được gọi là hàm phân mảnh (partitioning function) 2 Hệ quản trị CSDL @ BM HTTT
  • 3. Minh họa 3 Hệ quản trị CSDL @ BM HTTT
  • 4. Một số ưu điểm của phân mảnh  Phân mảnh giúp lưu dữ liệu trong một bảng lớn hơn trên một đĩa hoặc phân vùng hệ thống file  Dữ liệu không còn hữu ích có thể thường xuyên loại bỏ dễ dàng bằng cách xóa phân vùng  Một số truy truy vấn có thể tối ưu nếu dữ liệu thỏa mãn mệnh đề WHERE được xác định lưu trữ trong một hoặc nhiều phân vùng  Do các phân vùng có thể sửa đổi sau khi bảng được tạo, có thể tổ chức lại dữ liệu để nâng cao các truy vấn thường xuyên 4 Hệ quản trị CSDL @ BM HTTT
  • 5. Các kiểu phân mảnh  Khoảng (RANGE): gán các dòng vào các phân mảnh dựa vào giá trị của cột nằm trong một khoảng  Danh sách (List): tương tự như khoảng, nhưng danh sách là một tập các giá trị rời rạc  Băm (HASH): dựa trên giá trị trả lại bởi biểu thức định nghĩa bởi người dùng (tạo ra giá trị nguyên, không âm)  Khóa (KEY): tương tự phân mảnh bởi băm, ngoại trừ hàm băm được cung cấp bởi MySQL server, đảm bảo kết quả trả lại là số nguyên bất kỳ kiểu dữ liệu của cột. Bất kỳ các cột được sử dụng như là khóa phân mảnh cần phải là một phần hoặc toàn bộ khóa chính của bảng 5 Hệ quản trị CSDL @ BM HTTT
  • 6. Ví dụ CREATE TABLE members ( firstname VARCHAR(25) NOT NULL, lastname VARCHAR(25) NOT NULL, username VARCHAR(16) NOT NULL, email VARCHAR(35), joined DATE NOT NULL ) PARTITION BY KEY(joined) PARTITIONS 6; 6 Hệ quản trị CSDL @ BM HTTT
  • 7. Ví dụ CREATE TABLE members ( firstname VARCHAR(25) NOT NULL, lastname VARCHAR(25) NOT NULL, username VARCHAR(16) NOT NULL, email VARCHAR(35), joined DATE NOT NULL ) PARTITION BY RANGE( YEAR(joined) )( PARTITION p0 VALUES LESS THAN (1960), PARTITION p1 VALUES LESS THAN (1970), PARTITION p2 VALUES LESS THAN (1980), PARTITION p3 VALUES LESS THAN (1990), PARTITION p4 VALUES LESS THAN MAXVALUE ); 7 Hệ quản trị CSDL @ BM HTTT
  • 8. Ví dụ CREATE TABLE employees ( id INT NOT NULL, fname VARCHAR(30), lname VARCHAR(30), hired DATE NOT NULL DEFAULT '1970-01-01', separated DATE NOT NULL DEFAULT '9999-12-31', job_code INT, store_id INT ) PARTITION BY LIST(store_id) ( PARTITION pNorth VALUES IN (3,5,6,9,17), PARTITION pEast VALUES IN (1,2,10,11,19,20), PARTITION pWest VALUES IN (4,12,13,14,18), PARTITION pCentral VALUES IN (7,8,15,16) ); 8 Hệ quản trị CSDL @ BM HTTT
  • 9. Ví dụ CREATE TABLE employees ( id INT NOT NULL, fname VARCHAR(30), lname VARCHAR(30), hired DATE NOT NULL DEFAULT '1970-01-01', separated DATE NOT NULL DEFAULT '9999-12-31', job_code INT, store_id INT ) PARTITION BY HASH( YEAR(hired) ) PARTITIONS 4; 9 Hệ quản trị CSDL @ BM HTTT
  • 10. EXPLAIN PARTITIONS  Sử dụng EXPLAIN PARTITIONS SELECT để xem các phân vùng nào được sử dụng trong lệnh SELECT 10 Hệ quản trị CSDL @ BM HTTT
  • 11. Quản lý phân mảnh  MySQL 5.5 hỗ trợ một số cách để sửa đổi các bảng phân mảnh: thêm, xóa, định nghĩa lại, hòa trộn, tách các mảnh đã tồn tại sử dụng câu lệnh ALTER TABLE – PARTITION BY, ADD PARTITION, DROP PARTITION, REORGANIZE PARTITION, COALESCE PARTITION 11 Hệ quản trị CSDL @ BM HTTT
  • 12. Ví dụ  ALTER TABLE trb3 PARTITION BY KEY(id) PARTITIONS 2;  ALTER TABLE tr DROP PARTITION p2;  ALTER TABLE ADD PARTITION (PARTITION p3 VALUES LESS THAN (2000)); 12 Hệ quản trị CSDL @ BM HTTT
  • 13. Thông tin về các phân mảnh  SHOW CREATE TABLE  SHOW TABLE STATUS  Truy vấn bảng INFORMATION_SCHEMA.PARTITIONS 13 Hệ quản trị CSDL @ BM HTTT
  • 14. Giới hạn và hạn chế của phân mảnh  Thao tác phân mảnh, truy vấn có xu hướng nhanh hơn với bảng MyISAM so với các bảng InnoDB  Số lượng phân mảnh lớn nhất cho mỗi bảng là 1024  Không hỗ trợ khóa ngoài  Các bảng phân mảnh không hỗ trợ tìm kiếm FULL TEXT 14 Hệ quản trị CSDL @ BM HTTT
  • 15. Tài liệu tham khảo  http://www.mysql.com  http://dev.mysql.com/doc/refman/5.5/en/  http://www.learn-mysql-tutorial.com/ 15 Hệ quản trị CSDL @ BM HTTT