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

Cách nhanh nhất để thực hiện truy vấn xóa trong bảng lớn trong PostgreSQL

Nếu truy vấn này mất nhiều thời gian:

delete from PlanItems p where p.jobId = :jobid

bạn có một chỉ mục trên PlanItmes(jobId) - nơi jobId là cột đầu tiên trong chỉ mục - sau đó bạn cần xem xét các vấn đề khác.

  1. Có ràng buộc khóa ngoại xếp tầng sử dụng jobId không ? Nếu vậy, các tầng có thể ảnh hưởng đến các bảng đó - và nếu chúng đang xóa theo tầng, thì việc xóa các hàng đó có thể ảnh hưởng đến nhiều bảng hơn.

  2. Có trình kích hoạt xóa trên bảng không? Nếu vậy, thao tác xóa "đơn giản" của bạn có thể thực hiện nhiều công việc hơn bạn nghĩ.

  3. Có tải nặng trên hệ thống không? Nếu vậy, thời gian có thể chỉ đơn giản là chờ cơ hội để xóa các hàng.

  4. Các chế độ xem hiện thực hóa có được xây dựng trên bảng không? Nếu vậy, chúng có thể đang được làm mới.

Nếu không có trường hợp nào xảy ra thì có thể là do bạn đo thời gian đã trôi qua có vấn đề.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm việc với ngày tháng trong PostgreSQL

  2. Làm cách nào để truy vấn đơn giản và hiệu quả cho các mối quan hệ lồng nhau trong SQL?

  3. Tạo chỉ mục không phân biệt chữ hoa chữ thường trên mảng chuỗi Postgres

  4. Xoay vòng trên nhiều cột bằng cách sử dụng Tablefunc

  5. Trình kích hoạt sự kiện ROLLBACK trong postgresql