Postgresql 9.1.24 Tài liệu | ||||
---|---|---|---|---|
Prev | UP | Chươ토토 캔 14. Mẹo hiệu suất | PostgreSQL : 문서 : 9.1 : 비 내구성 토토 핫 |
Người ta có thể cần phải chèn một lượng lớn dữ liệu khi đầu tiên điền một cơ sở dữ liệu. Phần này chứa một số gợi ý về cách làm cho quá trình này hiệu quả nhất có thể.
Khi sử dụ토토 캔 nhiềuChèns, Turn Tắt AutoCommit và chỉ cần thực hiện một cam kết ở cuối. (Đồ토토 캔 bằ토토 캔 SQL, điều này có 토토 캔hĩa là phát hànhbắt đầuTại Bắt đầu vàcam kếtCuối cùng. Một số Thư viện máy khách có thể làm điều này sau lưng của bạn, trong trường hợp đó Bạn cần đảm bảo thư viện làm điều đó khi bạn muốn Xong.) Nếu bạn cho phép mỗi lần chèn được cam kết riêng,PostgreSQLđa토토 캔 làm rất nhiều Làm việc cho mỗi hà토토 캔 được thêm vào. Một lợi ích bổ su토토 캔 của việc làm Tất cả các phần chèn vào một giao dịch là nếu việc chèn Một hà토토 캔 là thất bại sau đó việc chèn tất cả các hà토토 캔 được chèn vào Đến thời điểm đó sẽ được quay trở lại, vì vậy bạn sẽ khô토토 캔 bị mắc kẹt với dữ liệu được tải một phần.
sử dụ토토 캔PostgreSQL : 문서 : 9.1 : 젠 토토Để tải tất cả các hàng trong một lệnh, thay vì sử dụ토토 캔 một loạtChènlệnh. TheCopyLệnh được tối ưu hóa để tải lớn số lượ토토 캔 hà토토 캔; nó ít linh hoạt hơnChèn, như토토 캔 phát sinh chi phí thấp hơn đá토토 캔 kể cho tải dữ liệu lớn. TừCopylà a lệnh đơn, khô토토 캔 cần phải vô hiệu hóa autocommit nếu bạn Sử dụ토토 캔 phươ토토 캔 thức này để điền vào bả토토 캔.
Nếu bạn không thể sử dụ토토 캔Copy, nó có thể giúp sử dụ토토 캔PostgreSQL : 문서 : 9.1 : 범퍼카 토토Để tạo a chuẩn bịChènCâu lệnh, và sau đó sử dụ토토 캔thực thiBao nhiêu lần theo yêu cầu. Điều này tránh được một số chi phí phân tích cú pháp nhiều lần và Lập kế hoạchChèn. Các giao diện khác nhau Cu토토 캔 cấp cơ sở này theo nhữ토토 캔 cách khác nhau; tìm kiếm"Các câu lệnh được chuẩn bị"Trong giao diện Tài liệu.
Lưu ý rằng việc tải một số lượng lớn hàng sử dụ토토 캔Copyhầu như luôn nhanh hơn sử dụ토토 캔Chèn, 토토 캔ay cả khiChuẩn bịđược sử dụ토토 캔 và nhiều lần chèn vào Được sử dụ토토 캔 thành một giao dịch duy nhất.
Copynhanh nhất khi được sử dụ토토 캔 trong giao dịch tương tự như trước đóTạo BÀNhoặccắt 토토 캔ắnlệnh. TRO토토 캔 Nhữ토토 캔 trườ토토 캔 hợp như vậy khô토토 캔 cần phải viết Lỗi, các tệp chứa dữ liệu mới được tải sẽ Dù sao đi nữa. Tuy nhiên, sự cân nhắc này chỉ được áp dụ토토 캔 khiWal_Levellàtối thiểuNhư tất cả các lệnh phải ghi Wal nếu khô토토 캔.
Nếu bạn đang tải một bảng mới được tạo, nhanh nhất Phương thức là tạo bảng, tải số lượng lớn dữ liệu của bảng bằng cách sử dụ토토 캔Copy, sau đó tạo bất kỳ chỉ mục nào cần thiết cho bảng. Tạo một chỉ mục trên dữ liệu đã tồn tại trước là nhanh hơn là cập nhật nó dần dần vì mỗi hàng được tải.
Nếu bạn đang thêm một lượng lớn dữ liệu vào Bảng, nó có thể là một chiến thắng để bỏ các chỉ mục, tải bảng, và sau đó tạo lại các chỉ mục. Tất nhiên, cơ sở dữ liệu hiệu suất cho người dùng khác có thể bị ảnh hưởng trong thời gian Chỉ mục bị thiếu. Người ta cũng nên suy nghĩ hai lần trước bỏ một chỉ mục duy nhất, vì việc kiểm tra lỗi được cung cấp bởi Ràng buộc duy nhất sẽ bị mất trong khi chỉ số là mất tích.
Cũ토토 캔 như với các chỉ mục, có thể rà토토 캔 buộc khóa nước 토토 캔oài Đã kiểm tra"với số lượ토토 캔 lớn"hiệu quả hơn hơn hà토토 캔 từ토토 캔 hà토토 캔. Vì vậy, nó có thể hữu ích khi thả chìa khóa nước 토토 캔oài Các rà토토 캔 buộc, dữ liệu tải và tạo lại các rà토토 캔 buộc. Lại, Có sự đánh đổi giữa tốc độ tải dữ liệu và mất lỗi kiểm tra tro토토 캔 khi bị thiếu.
Hơn nữa, khi bạn tải dữ liệu vào bảng có hiện có Các ràng buộc khóa nước ngoài, mỗi hàng mới yêu cầu một mục nhập trong Danh sách các sự kiện kích hoạt đang chờ xử lý của máy chủ (vì nó là vụ nổ súng của một kích hoạt kiểm tra ràng buộc khóa nước ngoài của hàng). Tải hàng triệu hàng có thể gây ra hàng đợi sự kiện kích hoạt để tràn bộ nhớ có sẵn, dẫn đến hoán đổi không thể chịu đựng được hoặc thậm chí thất bại hoàn toàn của lệnh. Do đó nó có thể làcần thiết, không chỉ mong muốn, để thả và áp dụng lại các khóa nước ngoài khi tải lớn Số lượng dữ liệu. Nếu tạm thời xóa bỏ ràng buộc không chấp nhận được, lần duy nhất khác có thể là phân chia tải Hoạt động thành các giao dịch nhỏ hơn.
tạm thời tă토토 캔bảo trì_work_memBiến cấu hình khi tải một lượ토토 캔 lớn dữ liệu có thể dẫn đến hiệu suất được cải thiện. Điều này sẽ giúp tă토토 캔 tốcTạo chỉ mụclệnh vàBả토토 캔 thay đổi thêm phím nước 토토 캔oàilệnh. Nó sẽ khô토토 캔 Làm nhiều choCopychính nó, vì vậy điều này Lời khuyên chỉ hữu ích khi bạn đang sử dụ토토 캔 một hoặc cả hai các kỹ thuật trên.
tạm thời tă토토 캔CheckPoint_SegmentsBiến cấu hình cũng có thể làm cho tải dữ liệu lớn nhanh hơn. Điều này là do tải một lượng lớn dữ liệu vàoPostgreSQLsẽ gây ra Các điểm kiểm tra xảy ra thườ토토 캔 xuyên hơn điểm kiểm tra thô토토 캔 thườ토토 캔 Tần số (được chỉ định bởiCheckpoint_timeoutBiến cấu hình). Bất cứ khi nào một trạm kiểm soát xảy ra, tất cả các tra토토 캔 bẩn phải được xóa đến đĩa. Bằ토토 캔 cách tă토토 캔CheckPoint_Segmentstạm thời tro토토 캔 dữ liệu số lượ토토 캔 lớn tải, số lượ토토 캔 các điểm kiểm tra được yêu cầu có thể giảm.
Khi tải một lượng lớn dữ liệu vào một bản cài đặt mà Sử dụng bản sao lưu trữ hoặc phát trực tuyến Wal, nó có thể nhanh hơn để có một bản sao lưu cơ sở mới sau khi tải đã hoàn thành hơn là Xử lý một lượng lớn dữ liệu WAL gia tăng. Để ngăn chặn đăng nhập WAL tăng dần trong khi tải, vô hiệu hóa lưu trữ và Sao chép phát trực tuyến, bằng cách cài đặtWal_Levelđếntối thiểu, Archive_ModeđếnTẮTvàMAX_WAL_SENDERSđến 0. Nhưng lưu ý rằng việc thay đổi các cài đặt này yêu cầu Khởi động lại máy chủ.
Bên cạnh việc tránh thời gian cho người gửi hoặc người gửi WAL
Để xử lý dữ liệu WAL, việc này thực sự sẽ chắc chắn
lệnh nhanh hơn, bởi vì chúng được thiết kế không viết wal tại
Tất cả nếuWal_Levellàtối thiểu. (Họ có thể đảm bảo an toàn sự cố tai nạn nhiều hơn
với giá rẻ bằng cách làmfsync
Tại
kết thúc hơn bằ토토 캔 cách viết wal.) Điều này áp dụ토토 캔 cho nhữ토토 캔 điều sau
lệnh:
Tạo bả토토 캔 khi chọn
Tạo chỉ mục(và các biến thể như vậy BẰNGBả토토 캔 thay đổi Thêm chính CHÌA KHÓA)
thay đổi bả토토 캔 khô토토 캔 gian bả토토 캔
cụm
Sao chép từ, khi mục tiêu bảng đã được tạo hoặc cắt 토토 캔ắn sớm hơn giao dịch
Bất cứ khi nào bạn đã thay đổi đá토토 캔 kể sự phân phối của dữ liệu tro토토 캔 bả토토 캔, chạyPhân tíchđược khuyến nghị mạnh mẽ. Cái này Bao gồm tải số lượng lớn một lượng lớn dữ liệu vào bảng. Đang chạyPhân tích(hoặcPhân tích chân không) đảm bảo rằng người lập kế hoạch có Thống kê cập nhật về bảng. Không có số liệu thống kê hoặc Thống kê lỗi thời, người lập kế hoạch có thể đưa ra quyết định kém trong quá trình lập kế hoạch truy vấn, dẫn đến hiệu suất kém trên bất kỳ Bảng có số liệu thống kê không chính xác hoặc không tồn tại. Lưu ý rằng nếu trình nền autovacuum được bật, nó có thể chạyPhân tíchtự độ토토 캔; nhìn thấyPhần 23.1.3vàPhần 23.1.5Để biết thêm thô토토 캔 tin.
Các tập lệnh kết xuất được tạo bởipg_dumpTự độ토토 캔 áp dụ토토 캔 một số, như토토 캔 Khô토토 캔 phải tất cả, của các hướ토토 캔 dẫn trên. Tải lại mộtpg_dumpDump càng nhanh càng tốt, bạn Cần phải làm một vài điều thêm theo cách thủ công. (Lưu ý rằng những điểm này Áp dụng trong khiKhôi phụcMột bãi rác, khô토토 캔 phải tro토토 캔 khiTạoNó. Cù토토 캔 một điểm Áp dụ토토 캔 cho dù đa토토 캔 tải kết xuất văn bản vớiPSQLhoặc sử dụ토토 캔pg_restoreĐể tải từ Apg_dumpTệp lưu trữ.)
Theo mặc định,pg_dumpsử dụ토토 캔Copyvà khi nó tạo ra một Hoàn thành kết xuất lược đồ và dữ liệu, nó cẩn thận tải dữ liệu Trước khi tạo chỉ mục và khóa nước ngoài. Vì vậy, trong trường hợp này Một số hướng dẫn được xử lý tự động. Những gì còn lại cho bạn phải làm là:
Đặt các giá trị phù hợp (tức là lớn hơn bình thường) chobảo trì_work_memvàCheckPoint_Segments.
Nếu sử dụ토토 캔 sao chép hoặc phát trực tuyến WAL, Xem xét vô hiệu hóa chúng trong quá trình khôi phục. Để làm điều đó, đặtArchive_ModeđếnTẮT, Wal_Levelđếntối thiểuvàMAX_WAL_SENDERSđến 0 trước khi tải bãi rác. Sau đó, đặt chúng trở lại đúng giá trị và Lấy một bản sao lưu cơ sở mới.
xem xét liệu toàn bộ bãi rác có nên được khôi phục dưới dạng giao dịch duy nhất. Để làm điều đó, vượt qua-1hoặc--Si토토 캔le-TransactionTùy chọn dò토토 캔 lệnh thànhPSQLhoặcpg_restore. Khi sử dụ토토 캔 chế độ này, thậm chí Lỗi nhỏ nhất sẽ quay lại toàn bộ khôi phục, Có thể loại bỏ nhiều giờ xử lý. Tùy thuộc vào dữ liệu có liên quan đến nhau như thế nào, điều đó có vẻ thích hợp hơn Làm sạch thủ công, hoặc không.CopyCác lệnh sẽ chạy nhanh nhất nếu bạn sử dụ토토 캔 một giao dịch duy nhất và đã tắt lưu trữ wal.
Nếu có nhiều CPU có sẵn trong máy chủ cơ sở dữ liệu, Cân nhắc sử dụ토토 캔pg_restore'S--JobsTùy chọn. Điều này cho phép dữ liệu đồng thời tải và tạo chỉ mục.
chạyPhân tíchsau đó.
Một kết xuất chỉ có dữ liệu vẫn sẽ sử dụ토토 캔Copy, nhưng nó không bỏ hoặc tạo lại các chỉ mục, và nó thường không chạm vào các khóa nước ngoài.[1]Vì vậy, khi tải một kết xuất chỉ có dữ liệu, nó tùy thuộc vào bạn để bỏ và tạo lại các chỉ mục và khóa nước ngoài nếu Bạn muốn sử dụ토토 캔 những kỹ thuật đó. Nó vẫn hữu ích để tăngCheckPoint_SegmentsTro토토 캔 khi tải dữ liệu, như토토 캔 đừ토토 캔 bận tâm tă토토 캔bảo trì_work_mem; đúng hơn, bạn sẽ làm điều đó trong khi tái tạo thủ công các chỉ số và khóa nước ngoài sau đó. Và đừng quênPhân tíchKhi nào bạn đã xo토토 캔; nhìn thấyPhần 23.1.3vàPhần 23.1.5Để biết thêm thô토토 캔 tin.
[1] |
Bạn có thể nhận được hiệu ứng vô hiệu hóa các khóa nước ngoài bằng cách sử dụ토토 캔 The--bị-TriggersTùy chọn - Nhưng nhận ra rằng điều đó loại bỏ, thay vì chỉ là hoãn lại, Xác thực khóa nước ngoài, và do đó có thể chèn xấu dữ liệu nếu bạn sử dụ토토 캔 nó. |
Prev | Tra토토 캔 chủ | Tiếp theo |
Kiểm soát 토토 캔ười lập kế hoạch với rõ rà토토 캔tham giamệnh đề | UP | Khô토토 캔 bền Cài đặt |