Nörttikysymys tietokantaguruille. Kysymyksessä on PostgreSQL. Minulla on käsissä varsin monimutkainen tietokantarakenne. Yhteen tauluun (kutsutaan sitä nimellä A) liittyy 10 vierasavainta jotka ovat tyypiltaan CASCADE tai SET NULL. Kun A-taulusta poistetaan rivi, tietokanta joutuu tarkastamaan nuo 10 vierasavainta ja siivoamaan myös ne. Yli 90 % poisto-operaation suoritusajasta menee vierasavaimien aiheuttamaan siivousoperaatioon. Tarkastin, että jokaisessa vierastaulussa on asianmukainen indeksi paikoillaan. Kun A-taulussa on miljoona riviä, 1000 rivin poistaminen kestää noin sekunnin. Tämä tuntuu itsestä edelleen varsin hitaalta. Tällä tahdilla miljoonan rivin poistaminen kestäisi yli 16 minuuttia. Jos sinulle on kokemusta suurista tietokannoista, tuntuuko sekunnin suoritusaika sinusta kohtuulliselta kun muistetaan, että tietokantarakenne on kohtalaisen monimutkainen? Ja tuleeko mieleen jotain nerokkaita taikatemppuja, jolla poistoa saisi nopeutettua? #ohjelmointi #tietokannat #postgresql