Iso tietokanta

Mara_

Jos pitää tallentaa Helsingin, Vantaa ja Espoon asukkaiden nimi ja puhelintiedot tietokantaan, ja haku tapahtuu nimen perusteella ja paikkakunta on aina etukäteen tiedossa. Niin kannattako tallentaa kaikki tiedot samaan tietokantaan, vai tehdä kolme tietokantaa, erikseen Helsinkiläisille, Espoolaisille ja Vantaalaisille?

Haussa voi tietenkin helposti erottaa paikkakunnat, mutta entäs suorituskyvyn kannalta? Jos kaikki on samassa tietokannassa niin pitää enemmän dataa lukea puskuriin, vai onko sillä suurtakin merkitystä?

Rivejä tietokannassa tulee olemaan < 1mil, ja tietokanta on MySQL

3

367

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • tohlo

      Sanoisin että ehdottomasti kaikki kannattaa laittaa samaan tietokantaan. Ei muutaman sadan tuhannen rivin lisäys paljoa hauissa lisää tee, kunhan taulurakenne ja indeksit on muuten laitettu järkevästi tehostamaan käyttöä. Koko Suomen väestökin todennäköisesti kannattaa laittaa yhteen ja samaan tietokantaan (helpottaa mm. siinäkin vaiheessa kun ihmiset muuttavat paikasta toiseen).

      Samoin käyttöjärjestelmäalusta välimuisteineen tuskin enää nykyisin vaikuttaa niin paljoa kuin ennen. Wintoosissa ja Linuxeissa ym. on systeemin puolesta välimuisteja, joiden seurauksena levyltäluvut ovat niin nopeita kuin ne nyt ylipäätään on mahdollista saada.

      Ennen kaikkea siis taulujen kenttien tyypit, viite-eheydet ja indeksit kannattaa laittaa kuntoon.

    • The Rat

      Taulu (ei siis tietokanta) alkaa olla "iso" kun rivejä on useita kymmeniä miljoonia.

      Tietokannan kokoa mitataan usein sen kuluttamina tavuina. Itse pidän rajana jotain viittä gigatavua, jossa vaiheessa kanta alkaa olla iso - olettaen että siihen on tallennettu vain perustietoista tavaraa (ei esim. kuvia). Tuokin toimii vielä varsin nopesti ihan peruspalvelimella kunhan muistia riittää.

      Tuollainen alle miljoonan rivin taulu ei ole mikään ongelma. Indeksit vain kuntoon (paikkakuntaa ei minusta kannata indeksoida, nimi riittää - siis sukunimi varmaan?)

    • rmac

      "Haussa voi tietenkin helposti erottaa paikkakunnat, mutta entäs suorituskyvyn kannalta? Jos kaikki on samassa tietokannassa niin pitää enemmän dataa lukea puskuriin, vai onko sillä suurtakin merkitystä? "

      SQL:n nopeuden kannalta yksi WHERE on aika vähämerkityksinen kunhan query optimizer toimii. Kaupungin hakemiseen voi olla parempi käyttää valikon listindexiä ja TINYINT -tyyppiä kuin stringiä - tämänkin voi testata käytännössä onko sillä merkitystä. Jos SQL on yhtään monimutkaisempaa kannattaa lausekkeet käydä huolellisesti läpi kantaa vastaan ja katsoa mikä haut tuntuvat raskailta.

      Isossa taulussa kannattaa käydä läpi tietokantamoottorin asetukset (ja varmasti ymmärtää mitä mikäkin parametri tarkoittaa). Tietokantahan on siitä kätevä paikka varastoida dataa että overheadiä on aika vähän. Jos datatyypit on mietitty kunnolla ja sarakkeita ei ole paljon miljoonan rivin taulu ei välttämättä vie muistia muutamaa kymmentä megaa enemmän. Nyrkkisääntö tietokantaalustoissa muutenkin on, että koko kannan tulee mahtua muistiin. Sehän ei ole ongelma kun palvelimiin ladataan pari gigaa muistia jo ihan vain varmuuden vuoksi.

      Viimeisimpänä mutta ei vähäisimpänä pitää muistaa myös backup. Perinteisesti mySQL on ollut heikoimmillaan silloin kun puhutaan tavanomaisista DBMS -apuprosesseista kuten online backup, statistiikkojen päivitys, replikointi, synkronointi jne. Kantaa suunniteltaessa pitää siis myös katsoa miten online backup toimii ja toimiiko myös sen palauttaminen.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Tällä kertaa Marinia kadehtii Minäminä Päivärinta

      Kokoomuksen tyhjäntoimittelija itkeä tuhertaa, kun kansainvälinen superstaramme ei leiki hänen kanssaan. Oikean puoluee
      Maailman menoa
      424
      1849
    2. Miksi jollain jää "talvi päälle"

      Huvittaa kastoa ullkona jotain vahempaa äijää joka pukeutuu edelleen kun olisi +5 astetta lämmittä vaikka on helle keli
      Maailman menoa
      190
      1507
    3. Minua itkettää tämä tilanne

      Meidän pitäisi jutella. Eikö niin? Miehelle.
      Ikävä
      109
      1421
    4. Miksi koulut pakottavat

      Lapset uimaan sekaryhmänä? Murrosikäiset tunnetusti häpeilevät vartalossa tapahtuvia muutoksia. Tulee turhia poissaoloja
      Maailman menoa
      168
      1386
    5. Mitkä oli suurimmat

      Syyt mihin hänessä ihastuit alussa ja pikkuhiljaa tunteiden edetessä
      Ikävä
      45
      1046
    6. Suomen Pallolitto: Tasoryhmät lasten jalkapallossa - Erätauko-tilaisuus ma 20.5.2024

      Tasoryhmät lasten ja nuorten jalkapallossa herättävät paljon keskustelua. Mitä tasoryhmät ovat ja mikä on niiden tarkoit
      Suomi24 Blogi ★
      0
      990
    7. Minulla oli tunteita

      Tein itsestäni pellen. Sait hyvät naurut ja minä 💔
      Ikävä
      63
      966
    8. Mitä et hyväksy miehessä/naisessa josta olet kiinnostunut?

      Itse en halua, että miehellä olisi lapsia!
      Ikävä
      119
      933
    9. Susanne Päivärinta kirjassaan: Sannalla nousi valta päähän, Big Time!

      Päivärinta toteaa ettei ole nähnyt kenenkään muuttuvan niin totaalisesti kuin Marinin, eikä siis todellakaan parempaan s
      Maailman menoa
      91
      921
    10. Se katse silloin

      Oli hetki, jolloin katseemme kohtasivat. Oli talvi vielä. Kerta toisensa jälkeen palaan tuohon jaettuun katseeseen. Tunt
      Ikävä
      32
      886
    Aihe