sql >> Database >  >> RDS >> PostgreSQL

Postgresql langzaam verwijderen van waar bestaat

Het verwijderen van 3,7 miljoen rijen is erg tijdrovend, vanwege de overhead van het opzoeken van elke rij en het loggen en verwijderen van de rijen. Alleen al denken aan alle vuile pagina's, logging en cachemissers is verbijsterend - om nog maar te zwijgen van updates van de indexen.

Om die reden kan zoiets als dit veel sneller zijn:

create temporary table temp_n2p as 
    select n2p.*
    from "target".name2phoneme n2p
    where not exists (select 1
                      from delta.name2phoneme d 
                      where n2p.NAME_ID = d.NAME_ID and
                            n2p.PHONEME_ID = d.PHONEME_ID
                     );

truncate table "target".name2phoneme;

insert into "target".name2phoneme
    select *
    from temp_n2p;

U moet ook de indexen voor de inkorting verwijderen en ze daarna opnieuw maken.



  1. hoe accenttekens over tekens in mijn database op te slaan

  2. mysql selecteer laagste prijs uit multi select

  3. Ik moet het datumformaat wijzigen met php

  4. Oracle-databaselink - maak verbinding met proxy met speciale tekens in gebruikersnaam