Jos meillä on vaikka pääkaupunkiseudun puhelinluettelo: (id, sukunimi, etunimi, kaupunki, numero)
Miten kannatta tehdä indeksi?
(sukunimi, etunimi, kaupunki) vai (kaupunki, sukunimi, etunimi)
Jos esim haemme Virtasta joka asuu Helsingissä.
Jos Virtasia on vaikka 3000 ja 1000 asuu Helsingissä, yhteensä ihmisiä pääkaupunkiseudulla asuu miljoona.
Niin miten on järkevämpää hakea, Ensin rajoitetaan kaikki Virtaset ja sen jälkeen otetaan kaikki Helsingissä asuvat.
Vai ensin rajoitetaan kaikki Helsingissä asuvat ja vasta sen jälkeen etsitään niistä ne joiden sukunimi on Virtanen?
Miten kannatta tehdä indeksi?
(sukunimi, etunimi, kaupunki) vai (kaupunki, sukunimi, etunimi)
Jos esim haemme Virtasta joka asuu Helsingissä.
Jos Virtasia on vaikka 3000 ja 1000 asuu Helsingissä, yhteensä ihmisiä pääkaupunkiseudulla asuu miljoona.
Niin miten on järkevämpää hakea, Ensin rajoitetaan kaikki Virtaset ja sen jälkeen otetaan kaikki Helsingissä asuvat.
Vai ensin rajoitetaan kaikki Helsingissä asuvat ja vasta sen jälkeen etsitään niistä ne joiden sukunimi on Virtanen?
Vastaukset 2
Vanhimmat
Miten olisi, jos tekisit erilliset indeksit ja antaisit optimoijan päättää mitä käyttää?
Etunimellä harvoin varmaan haetaan, joten (sukunimi, etunimi) olisi varmaan ihan hyvä - joskin aika vähän on yhtä sukunimeä tässä maassa, ehkä pelkkä sukunimikin riittäisi.
Puhelinnumeroiden tallennusta samaan tauluun en kylläkään ymmärrä. Ainakin minulla on kaksi puhelinnumeroa, ei kai minun tietojani mennä monistamaan tuohon kantaasi? Hankaluuksia tiedossa... :)
Ensinnäkin muodostusta voi opiskella http://www.lpt.fi/it/opetus/tietokannat/suunnittelu.html (en lukenut loppuun). Koko homman idea ei ole indeksit (mitä sana mahtanee tarkoittaakaan) vaan tiedon läytäminen. Ideksi tai "key" heitetään yleisesti kokoelmatauluun mihin ei sallita muita vastaavia. Nyt täytyy muistaa mikäli toimii monidimensionaalisten taulujen kanssa alaspäinsuuntautuva tieto eli rivit vie vähemmän tilaa kuin leveyssuunnassa.