sql >> Database teknologi >  >> RDS >> PostgreSQL

Optimer Postgres sletning af forældreløse poster

En tilgang til problemer som dette kan være at gøre det i mindre bidder.

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
);

Skyl, gentag. Eksperimenter med forskellige chunkstørrelser for at finde en optimal til dit datasæt, som bruger de færreste forespørgsler, samtidig med at de alle gemmes i hukommelsen.

Naturligvis vil du gerne scripte dette, muligvis i plpgsql, eller i hvilket scriptsprog du foretrækker.



  1. MYSQL-udløseren slettes automatisk

  2. offset/limit performance optimering

  3. Kan jeg køre en HTTP GET direkte i SQL under MySQL?

  4. Funktion til at rense inputværdier PHP