Toon posts:

[SQL] wat is beter/sneller

Pagina: 1
Acties:

Verwijderd

Topicstarter
Volgende probleem, ik heb een database, waar alles wat er ingezet wordt in meerdere talen ingevoerd kan worden.
Daarvoor heb ik een tabel met de talen en een taalID.

Nu wordt er in de database voor ieder 'object'(=bijv een tabel waar producten in worden opgeslage) een andere tabel aangemaakt met daarin de objectID en een taalID en natuurlijk de data.

Er zijn meerdere 'objecten', per versie kunnen er 'objecten' bijkomen.

Probleem is nu dat als er een taal bijkomt, dat moet in principe 'on the fly' kunnen gebeuren bij de gebruiker, dat ik een script alle data tabellen af moet laten lopen om daar voor ieder een taalID toe te voegen.

Nu dacht ik als ik nou een data tabel maak, bijv: dataID, taalID, data (dataID en taalID zijn samen uniek). Dan kan ik ieder 'object' laten refereren naar een dataID.

Probleem zit hem nu denk ik in het selecteren etc, je MOET dan joinen met een supergrote tabel(data), daar komen zeker een miljoen regels in. Nu is mijn vraag wat kan ik beter doen, of zijn er andere oplossingen? Het moet ook allemaal nog eens snel gaan ook, want het wordt zeer regelmatig(paar keer per seconde) opgevraagd, indexeren wordt zoiezo al gedaan.

  • sverzijl
  • Registratie: Januari 2001
  • Laatst online: 12:53
Over het joinen met die 'supergrote' tabel zou ik me niet al te veel zorgen maken. Aangezien je PER taalID grofweg evenveel data zult hebben zal een B-tree index op taalID(+dataID) op die 'grote' tabel vrijwel net zo snel zijn als een join op een kleinere tabel met alleen data per land.

[edit]
klein voorbeeldje. Ik heb hier een tabel van soortgelijke grootte (1.8 miljoen rows, 45 columns) waarin 69 landen zijn opgenomen en per maand zo'n 100.000 rows worden toegevoegd.
Het ophalen van de 1e row voor 1 land voor een bepaalde maand duurt +/- 170ms (inclusief 30ms TCP/IP roundtrip over een 2Mbps netwerk). Dit is op een Oracle 8i database op een dual pentium II-500Mhz machine.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Geen zorgen maken over het aantal records in je tabel, zolang je je indexes maar goed zet zou er geen probleem mogen zijn.

[standaard MySQL trashing:] Tenzij je MySQL gebruikt natuurlijk :+ [/trash]

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Topicstarter
Ok, bedankt, ik wilde eerst een bevestiging horen, voordat ik alles gaat omgooien.