Saaste
@saaste@mementomori.social
🇫🇮 Töissä kannan päässäni ohjelmoijan hattua. Vapaa-ajalla satunnaista puuhastelua liikunnan, konsolipelien, kirjojen ja muun härväämisen saralla. Introvertti jurottaja joka ei ole erityisen hyvä edes sosiaalisessa mediassa. 🇬🇧 At work, I wear a programmer's hat. In my spare time, I do random things related to sports, console games, books and other fun stuff. Grumpy introvert who is also not very good at social media. Toots mostly in Finnish. #NoBridge #NoBots #NoIndex
mementomori.social
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
3
6
5
You've seen all posts