Tack så mycket för svaren allihopa.
Säg till om jag skall slänga ihop en databas + PHP kod om någon tycker det är roligt att leka runt lite :P
Citat:
Ursprungligen postat av ANttila
Kanske en query för varje kön, sätt ett "par ID" för varje rad. Sen UNION på "par ID"?
|
Kanske missuppfattande men ser tyvärr inte hur detta hjälper mitt problem för jag måste ändå kors matcha paren så användare #1 kön & stad passar in på användares #2 önskemål när det gäller kön & stad, MEN det räcker ju inte att #1 kan paras ihop med #2, #2 kön & stad måste också passa in på #1 önskemål. Det är just korsmatchningen som gör att det tar ett par queries för att matcha ihop dom.
Citat:
Ursprungligen postat av rhdf
Ett alternativ skulle väl vara att plocka ut alla deltagare till en array som du sen loopar igenom och jämför med "sig själv" för att göra matchningen. I den loopen bygger du ihop en stor query som du sen kör . (insert into matches(.. ..) Values (.. ..), (.. ..) osv )
När du hittar matchningar så plockar du helt enkelt bort de 2 deltagarna ur arrayen. Kvar har du sen de som inte valt några preferenser.
|
Ja så skulle jag också kunna göra, men det är ändå bara en annan version av det jag redan har, är det 1000 deltagare så måste jag loopia igenom arrayen minst 500ggr & max 1000ggr beroende på om den hittar par matchningar eller inte. Kan ju använda Redis istället för just arrayen och bortplockningen av deltagarna från arrayen så blir det något mindre prestandaproblem men jao hmm.
Citat:
Ursprungligen postat av Alex
Hur ofta behöver du köra detta, och hur lång tid tar frågan som den ser ut nu?
|
Evenemangen är 1ggr i veckan & 1 omgång per event. Detta kan komma att ändras till 1 ggr i veckan & upp till 20 omgångar beroende på popularitet. Frågan tar mellan 5-10s per 1´000 deltagare (loopar igenom 1000 deltagare, korsmatchar med 1 query per deltagare + insert av matchningen) så minst 1000st queries för 1000 deltagare :P Kan maskera dom 5-10s med en eventloader iofs: "Eventet börjar om 20s" + nedräkning & köra querien under tiden, men är viss aktivitet på andra delar av sidan också som blir påverkare/köade under tiden vilket inte är så optimalt.
Citat:
Ursprungligen postat av Conny Westh
1000 tupler i en SQL-fråga verkar vara "peanuts", har du prestandaproblem?
|
1000 rader år såklart en fis i rymden, problemet är dom 1000-1500 ytterligare SQL-frågor det resulterar i.