PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Khung dữ liệu ghi vào Postgresql hiệu suất kém

Tự trả lời câu hỏi 1:Có vẻ như vấn đề liên quan nhiều hơn đến Postgresql (hay đúng hơn là Cơ sở dữ liệu nói chung). Tính đến các điểm được thực hiện trong bài viết này: https://sử dụng-the- index-luke.com/sql/dml/insert Tôi đã tìm thấy những thứ sau:

1) Xóa tất cả các chỉ mục khỏi bảng đích dẫn đến truy vấn chạy trong 9 giây. Việc xây dựng lại các chỉ mục (trong postgresql) mất thêm 12 giây, vì vậy vẫn tốt so với những lần khác.

2) Chỉ với một khóa chính tại chỗ, việc chèn các hàng được sắp xếp theo các cột khóa chính đã giảm thời gian thực hiện xuống khoảng một phần ba. Điều này có ý nghĩa vì cần phải có ít hoặc không có xáo trộn các hàng chỉ mục. Tôi cũng đã xác minh rằng đây là lý do tại sao tham gia cartesian của tôi trong postgresql ngay từ đầu nhanh hơn (IE các hàng được sắp xếp theo chỉ mục, hoàn toàn là do ngẫu nhiên), đặt các hàng giống nhau trong một bảng tạm thời (không có thứ tự) và chèn từ đó thực sự mất nhiều thời gian hơn.

3) Tôi đã thử các thí nghiệm tương tự trên hệ thống mysql của chúng tôi và nhận thấy tốc độ chèn tăng tương tự khi xóa chỉ mục. Tuy nhiên, với mysql, dường như việc xây dựng lại các chỉ mục đã sử dụng hết bất kỳ lúc nào đã đạt được.

Tôi hy vọng điều này sẽ giúp ích cho bất kỳ ai khác gặp phải câu hỏi này từ một cuộc tìm kiếm.

Tôi vẫn tự hỏi liệu có thể xóa bước ghi vào csv trong python không (câu hỏi 2 ở trên) vì tôi tin rằng sau đó tôi có thể viết nội dung nào đó bằng python sẽ nhanh hơn postgresql thuần túy.

Cảm ơn, Giles




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NULL emements bị mất khi truyền kết quả của unnest ()

  2. PostgreSQL:giữa với datetime

  3. Làm cách nào để xử lý việc mở / đóng kết nối Db trong ứng dụng Go?

  4. Thay thế chuỗi bằng số ngẫu nhiên

  5. Tôi làm cách nào để sử dụng hình ảnh / vùng chứa Postgresql docker?