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é

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

 

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 2: ADMIN 1 + DATA GUARD

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

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
0
Rất thích suy nghĩ của bạn, hãy bình luận.x