optimalisatie voor beginners

Status
Niet open voor verdere reacties.

Nonaz

Nieuwe gebruiker
Lid geworden
20 jan 2008
Berichten
1
Ik wil een tabel maken in mijn database van 10.000 x 1000 velden:
Code:
            40.000   40.001   40.002   40.003   ...       49.999   <-a
2000                                   r
2001        x                                      w
2003                     w                                                 
2004                                                                       h
2005                      g           g
2006        p
2007                                                 p
...
2999                      r                                                r

^
b
zoals zichtbaar tellen de x en y waarden netjes opeenvolgend op, en is de tabel maar scarcely populated met letters, de lege velden zijn NULL

nu weet ik hoe ik bijvoorbeeld alle waarden die bij 2005 horen op moet vragen. maar wat is de efficientste manier om een lijstje te krijgen met letters en hun waarde a (of rownummer) die in b (2005) voorkomen? een index helpt al bij het zoeken, maar kun je niets doen met het feit dat ze al netjes gestructureerd in oplopende ints zitten? of met dat de meeste waarden NULL zijn en genegeerd kunnen worden?

of is er misschien een veel efficientere manier om deze data op te slaan en toch makkelijk een letter toe te kunnen voegen eens in de zoveel tijd? Harde schijfruimte is geen issue, prioriteit heeft het aantal schijfbewerkingen, daarna CPU, RAM, duur van de schijfbewerking en tot slot de grootte van de array met characters die ik in java terug krijg.

elk advies of uitleg is welkom, of verwijzingen naar sites met relevante info!
/nonaz
 
Hallo,

Volgens mij kun je de data veel eenvoudiger opslaan in 3 kolommen. Je krijgt dan
VeldA;VeldB;VeldC
2000;40.002;R
2001;40.000;X
2001;40.003;W
etc.

Je krijgt nu veel meer records maar veel minder velden en heel veel minder cellen (je hebt helemaal geen Null meer).

Je kunt nu gewoon een query maken met:
select * from <<tabelnaam>> where veldA = '2005

Als je de data echt wilt zien zoals in onderstaand format dan kun je een draaitabel maken in excel

Succes!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan