Kom ihåg mig?
Home Menu

Menu


Bästa approch att spara jobba med stor mängd data?

Ämnesverktyg Visningsalternativ
Oläst 2015-10-27, 14:32 #1
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
Standard Bästa approch att spara jobba med stor mängd data?

Hej,
Jag håller på att utveckla en quiz-sida där det kommer finns ca 120 slumpvis valda frågor, varje fråga har en text på ca 7000 tecken! ja du läste rätt 7000 tecken! dvs att en omgång innehåller ca 840,000 tecken!

Från början använde jag sessioner för att spara denna data, vilket inte fungerade så där jätte bra hos Loopia, då de körde med lastbalansering, och ibland händer det att sessionen tas bort och då crashar allt.

sedan tog jag en annan approch och sparade sessionsID i databasen så ifall session skulle förloras så kunde man hämta hem session via datasen. Problemet här är ju att jag måste för varje fråga uppdatera databasen, och att session även håller reda på vilka frågor användaren har besvarat.

alternativ 2 funkar ju, inget problem direkt... dock känns det lite onödig med 1 anrop mot databasen för varje nu fråga.

finns det smartare alternativ?
naak2803 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2015-10-27, 17:59 #2
Nerix Nerix är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2010
Inlägg: 398
Nerix Nerix är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2010
Inlägg: 398
7k tecken är med UTF8 maximalt 27kb, vilket är väldigt lite data att hämta om databas ligger på samma server. Se till att spara informationen i rätt columntyp bara, te.x barracuda row format.

Annars är en cacheserver likt redis eller memcached ett bra alternativ.
Nerix är inte uppkopplad   Svara med citatSvara med citat
Oläst 2016-01-12, 12:14 #3
terbon terbon är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 69
terbon terbon är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 69
Vad är det du vill lagra?
1. Är det alla frågorna som existerar?
2. Eller är det ett state på hur många av dessa 120 frågorna som personen svarat rätt på, alternativt har kvar att svara på?

om 1; som 2 säger så är det bara att lagra texten i databas. En rad per fråga.
om 2; Du behöver ju inte spara information såsom texten på frågan utan bara något id som pekar emot frågan och huruvida det har svarats rätt svar eller inte. Detta kan du spara i databasen med ett id där du lagrar ditt ID i en session (eller cookie).
terbon är inte uppkopplad   Svara med citatSvara med citat
Oläst 2016-01-13, 18:59 #4
jayzee jayzee är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2008
Inlägg: 1 089
jayzee jayzee är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2008
Inlägg: 1 089
Totalt kommer hela omgången att ta upp 820.3kB vilket inte är något som helst problem att lagra i Local Storage vilket jag rekommenderar för ditt ändamål. När frågorna är besvarade verifierar du så att innehåller i din Local Storage är korrekt och uppdaterar DB.

Senast redigerad av jayzee den 2016-01-13 klockan 19:04
jayzee är inte uppkopplad   Svara med citatSvara med citat
Oläst 2016-01-13, 20:42 #5
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Frågorna bör du väl ändå spara i din databas. Och eftersom du säger att du lottar ut 120 frågor antar jag att du redan gör det?

Behöver du sedan lotta ut en omgång med frågor så sparar du en referens (id) för frågan i en session, samt eventuell information knuten till omgången (svaren på frågor, tidfrist?, starttid? osv).

Kör man samma kod över flera servrar med någon form av lastbalansering kan man inte spara session-datan i fil, om man inte mountat en nätverksdisk för ändamålet. Isåfall löser man det enklast (men inte alltid bäst) med att spara sessions i databasen man använder för övriga funktioner. Detta kan ändras lätt i alla vettiga språk eller ramverk för webben. Men att duplicera frågorna som lottats ut förstår jag verkligen inte varför du vill göra...
Clarence är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 15:56.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017