webForumDet fria alternativet

Optimering av sökning i 2 tabeller

0 svar · 333 visningar · startad av henrikjohansson

henrikjohanssonMedlem sedan maj 2000360 inlägg
#1

Låt säga att jag har 2 tabeller

Items:
ID Name
--------------
1 Ett
2 Två
3 Tre
4 Bla bla
etc.

Variable:
ItemID VariableID Value
--------------------------
1 1 12
1 2 1239
1 3 156
2 1 157
etc..

Det är alltså en mängd Items och ett antal Variabler till varje Item.
Lek med tanken att vi har 1 miljon items, och att varje item har 20 värden (variableID 1 - 20)

Select * from Items where
ID IN (Select ItemId where VariableID = 1 AND Value > 5) AND
ID IN (Select ItemId where VariableID = 2 AND Value < 5) AND
ID IN (Select ItemId where VariableID = 3 AND Value = 5) etc etc..

(Sökningen kommer oftast inte att involvera alla variabler, men det kan hända)
Som det är nu är Value en integer, men kan även bli en ny kolumn där sValue är en 64 teckens sträng

Finns det något smartare sätt att söka efter Items där med urval på Variables? Det jag är orolig för är att prestandan blir lidande när databasen växer (1 miljon rader, 10 miljoner rader, 100 miljoner rader?) och antal förfrågningar ökar.

Det bästa hade kanske varit att bara ha 1 stor tabell, med 1 kolumn för varje data variabel, men det blir tyvärr krångligt då antalet variabler per Item också kommer att växa.

Jag har inte bestämt mig för vilken databas jag skall köra, men tror att jag kommer börja med mysql eller MS-SQL.

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)