Các option trong pg_dump

   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é

Đọc thêm  Export Import dữ liệu bằng pg_dump trong PostgreSQL

 

   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

 

   Option 1: File export là các câu lệnh INSERT

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

   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

 

   Option 2: File export là câu lệnh COPY

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:

   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 😀

 

   Option 3: Export dữ liệu ra nhiều file cùng lúc (export parallel) không né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

Kết quả như sau:

   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

 

   Option 4: Export dữ liệu ra nhiều file cùng lúc (export parallel) kết hợp với né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

Kết quả như sau:

   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é.

 

    KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN  Xem ngay!

 

   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é.

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận