Các option trong pg_dump

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 cơ bản 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/

Xin cho tôi được biết, bạn cảm thấy bài viết này như thế nào? Ý kiến của bạn sẽ giúp tôi nâng cao chất lượng bài viết của mình.

    Hãy chia sẻ bài viết này nếu bạn thấy có ích nhé
    0 0 votes
    Article Rating
    Subscribe
    Notify of
    guest
    0 Comments
    Inline Feedbacks
    View all comments