Mục lục
1. Giới thiệu
Khi export dữ liệu, bạn có chắc các option bạn sử dụng đã là tối ưu? Trong bài viết này, tôi sẽ thực hành với các câu lệnh pg_dump và so sánh thời gian thực hiện giữa các option của nó nhé.
Nếu bạn chưa làm việc với pg_dump bao giờ, hãy xem bài viết trước đó của tôi nhé
2. Môi trường
- Phiên bản PostgreSQL mà tôi sử dụng trong bài thực hành này là 13,
- Tên table: sale_orders và products
- Tổng dung lượng: 51G
3. Option 1: File export là các câu lệnh INSERT
1. Thực hiện
Câu lệnh này sẽ export dữ liệu vào file dump_table_insert.sql
pg_dump -d prod --data-only --column-inserts -t sale_orders -t products > dump_table_insert.sql
Với option này, dữ liệu trong bảng sale_orders và products của tôi sẽ biến thành hàng loạt các câu lệnh INSERT
2. Kết quả
- Thời gian bắt đầu: 10h 27ph
- Thời gian kết thúc: 10h 38ph
- Tổng thời gian thực hiện: 11 phút
- Kích thước file dump: 46G
4. Option 2: File export là câu lệnh COPY
1. Thực hiện
pg_dump -d prod –data-only -t sale_order -t products > dump_table_copy.sql
Nội dung của file dump_table_copy.sql sẽ là câu lệnh COPY và các dòng dữ liệu của bảng như hình bên dưới:
2. Kết quả
- Thời gian bắt đầu: 11h 37ph
- Thời gian kết thúc: 11h 43ph
- Tổng thời gian thực hiện: 6 phút
- Kích thước file dump: 18G
Đã thấy tốc độ và cả dung lượng đã cải thiện rồi đúng không 😀
5. Option 3: Export dữ liệu ra nhiều file cùng lúc (export parallel) không nén
1. Thực hiện
Câu lệnh như sau:
pg_dump -d prod–format=d –jobs=2 –file=/var/lib/postgresql/dump2 –compress=0 –data-only -t od_sale_order -t products
Ở đây tôi có 2 bảng nên tôi lựa chọn số luồng export là 2, quy định bởi tham số –jobs=2, –format=d và –file=/var/lib/postgresql/dump2
2. Kết quả
- Thời gian bắt đầu: 11h 45ph
- Thời gian kết thúc: 11h 49ph
- Tổng thời gian thực hiện: 4 phút
- Kích thước file dump: 11G
6. Option 4: Export dữ liệu ra nhiều file cùng lúc (export parallel) kết hợp với nén
1. Thực hiện
Câu lệnh như sau:
pg_dump -d prod–format=d –jobs=4 –file=/var/lib/postgresql/dump –data-only -t od_sale_order
2. Kết quả
- Thời gian bắt đầu: 11h 51ph
- Thời gian kết thúc: 11h 57ph
- Tổng thời gian thực hiện: 6 phút
- Kích thước file dump: 2.5G
Đây là số liệu thực tế mà tôi đã thực hiện, từ những kết quả này, bạn đã có thể tự kết luận được option nào phù hợp với mình rồi phải không nào?
Đợi 1 chút, nếu bạn còn thắc mắc nào khác, hãy comment ở phía dưới bài viết này, hoặc tham gia vào group “Kho tài liệu kiến thức về Database” của tôi trên Facebook nhé.
Nguồn: https://dangxuanduy.com/
Hiện tại, tôi có tổ chức đều đặn các khóa học về quản trị Oracle Database, tôi sẽ để thông tin ở đây, để bạn nào quan tâm về lịch học cũng như chương trình học có thể theo dõi nhé.
KHOÁ DÀNH CHO NGƯỜI MỚI
KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN (ADMIN 1)
CÁC KHOÁ NÂNG CAO:
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ KIẾN TRÚC MULTITENANT 12c
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ HỆ THỐNG DATA GUARD
CÁC KHOÁ COMBO:
COMBO 1: ADMIN 1 + MULTITENANT 12c
COMBO 3: ADMIN 1 + MULTITENANT 12c + DATA GUARD
LỊCH HỌC:
Mời bạn xem tại đây: LỊCH HỌC CÁC LỚP ORACLE
ĐĂNG KÝ:
https://forms.gle/MtCAoRQFenP886y79
Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.