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

Tối ưu hóa việc xóa Postgres của các bản ghi mồ côi

Một cách tiếp cận đối với những vấn đề như thế này có thể là giải quyết nó theo từng phần nhỏ hơn.

DELETE FROM "contacts"
WHERE  "contacts"."id" IN (
    SELECT id
    FROM contacts
    LEFT OUTER JOIN members ON members.contact_id = contacts.id 
    WHERE members.id IS NULL
        AND id >= 1 AND id < 1000
);
DELETE FROM "contacts"
WHERE  "contacts"."id" IN (
    SELECT id
    FROM contacts
    LEFT OUTER JOIN members ON members.contact_id = contacts.id 
    WHERE members.id IS NULL
        AND id >= 1001 AND id < 2000
);

Rửa sạch, lặp lại. Thử nghiệm với các kích thước phân đoạn khác nhau để tìm một kích thước tối ưu cho tập dữ liệu của bạn, tập dữ liệu này sử dụng ít truy vấn nhất, trong khi vẫn giữ tất cả chúng trong bộ nhớ.

Đương nhiên, bạn muốn viết kịch bản này, có thể bằng plpgsql hoặc bằng bất kỳ ngôn ngữ viết lệnh nào bạn thích.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. (Postgresql) làm cho chức năng kích hoạt bảng chèn giá trị ID của hàng đã thay đổi vào bảng nhật ký, để sao chép tùy chỉnh

  2. Tạo mật khẩu người dùng postgresql

  3. Sắp xếp không chính xác PostgreSQL

  4. Lấy dữ liệu từ php vào tập lệnh c #

  5. Không có ràng buộc duy nhất hoặc loại trừ nào phù hợp với MỨC ĐỘ BẬT