PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Най-бързият начин за изпълнение на заявка за изтриване в голяма таблица в PostgreSQL

Ако тази заявка отнема много време:

delete from PlanItems p where p.jobId = :jobid

и имате индекс на PlanItmes(jobId) -- където jobId е първата колона в индекса -- тогава трябва да разгледате други проблеми.

  1. Има ли каскадни ограничения на външен ключ, които използват jobId ? Ако е така, каскадите може да повлияят на тези таблици -- и ако те са каскадни изтривания, тогава изтриването на тези редове може да засегне повече таблици.

  2. Има ли тригер за изтриване на масата? Ако е така, вашите „прости“ изтривания може да вършат много повече работа, отколкото си мислите.

  3. Има ли голямо натоварване на системата? Ако е така, времето може просто да чака възможност за изтриване на редовете.

  4. Изградени ли са материализирани изгледи на масата? Ако е така, те може да се опресняват.

Ако нито едно от тези не е така, тогава може да е проблем в това как измервате изминалото време.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails недефиниран метод за ActiveRecord_Associations_CollectionProxy

  2. Има ли начин за полезно индексиране на текстова колона, съдържаща модели на регулярен израз?

  3. Комбинирайте две колони и добавете в една нова колона

  4. Как да сменя собственика на PostgreSql база данни?

  5. не мога да се свържа с Postgres (pg) база данни от моя Ruby Script, използвайки gem pg (Това не са релси, просто чист рубин)