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

394

    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. Janne Ahonen E R O A A

      Taas 2 lasta jää vaille ehjää perhettä!
      Kotimaiset julkkisjuorut
      204
      4038
    2. Tekisi niin mieli laittaa sulle viestiä

      En vaan ole varma ollaanko siihen vielä valmiita, vaikka halua löytyykin täältä suunnalta, ja ikävää, ja kaikkea muuta m
      Ikävä
      92
      1926
    3. Miksi ihmeessä?

      Erika Vikman diskattiin, ei osallistu Euroviisuihin – tilalle Gettomasa ja paluun tekevä Cheek
      Ateismi
      30
      1612
    4. Ootko huomannut miten

      pursuat joka puolelta. Sille joka luulee itsestään liikoja 🫵🙋🏻‍♂️
      Ikävä
      165
      1402
    5. Erika Vikman diskattiin, tilalle Gettomasa ja paluun tekevä Cheek

      Erika Vikman diskattiin, ei osallistu Euroviisuihin – tilalle Gettomasa ja paluun tekevä Cheek https://www.rumba.fi/uut
      Maailman menoa
      25
      1296
    6. Pitääkö penkeillä hypätä Martina?

      Eivätkö puistonpenkit ole istumista varten.Ei niitä kannata liata hyppäämällä koskaa likaantuvat eikä siellä kukaan niit
      Kotimaiset julkkisjuorut
      212
      1160
    7. Kerropa ESA miten kävi tuomioiden

      Osaako ESA kertoa miten haukkumasi kunnanhallituksen kävi.
      Puolanka
      39
      1142
    8. Kuinka kauan

      Olet ollut kaivattuusi ihastunut/rakastunut? Tajusitko tunteesi heti, vai syventyivätkö ne hitaasti?
      Ikävä
      95
      1124
    9. Maikkarin tentti: Orpo jälleen rauhallinen ja erittäin hyvä, myös Purra oli hyvä

      Lindtman ja Kaikkonen oli kohtalaisia, sen sijaan punavihreät Koskela ja Virta olivat taas heikkoja. Ja vastustavat jalk
      Maailman menoa
      129
      1103
    10. Milli-helenalla ongelmia

      Suomen virkavallan kanssa. Eipä ole ihme kun on etsintäkuullutettu jenkkilässäkin. Vähiin käy oleskelupaikat virottarell
      Kotimaiset julkkisjuorut
      199
      1049
    Aihe