sql >> Database >  >> RDS >> PostgreSQL

Snelste manier om een ​​verwijderquery uit te voeren in een grote tabel in PostgreSQL

Als deze zoekopdracht lang duurt:

delete from PlanItems p where p.jobId = :jobid

en je hebt een index op PlanItmes(jobId) -- waar jobId is de eerste kolom in de index -- dan moet u andere zaken overwegen.

  1. Zijn er trapsgewijze beperkingen voor externe sleutels die gebruik maken van jobId ? Als dat zo is, kunnen de cascades van invloed zijn op die tabellen - en als het trapsgewijze verwijderingen zijn, kan het verwijderen van die rijen van invloed zijn op meer tabellen.

  2. Is er een verwijdertrigger op de tafel? Als dat zo is, kunnen uw "eenvoudige" verwijderingen veel meer werk doen dan u denkt.

  3. Wordt het systeem zwaar belast? Als dat zo is, kan de tijd wachten op een mogelijkheid om de rijen te verwijderen.

  4. Worden gematerialiseerde weergaven op de tafel gebouwd? Als dit het geval is, worden ze mogelijk vernieuwd.

Als geen van deze situaties het geval is, kan het een probleem zijn hoe u de verstreken tijd meet.




  1. Docker wacht tot postgresql actief is

  2. 5 redenen om voor Arkware te kiezen

  3. Mysql-tijdzone op Windows 7 niet bijgewerkt

  4. Is er een manier om alleen het lagere bereik in mysql te beperken?