Just nu i M3-nätverket
Gå till innehåll

om olika Tänk


jan-erik

Rekommendera Poster

Jag har analyserat min nya hemsida, som egentligen är en ren experimentverskstad, med avseeende på svarstider, och kan dra slutsatsen att databashanteringen (ganska omfattande: 400 hundar och lika många hundägare med omfattande och frekevent aktivitet ) är den huvudsakliga flaskhalsen.

Givetvis tänker man då på Ajax, men man funderar ju även på lite andra modeller.

Om jag vet att en viss sida (xvis dagens träningsprogram med planering för alla deltagande ekipage) kommer att laddas ner 50 ggr den aktuella dagen, skulle jag då inte på nåt sätt kunna "förformatera" denna sida och placera den på ett lättåtkomligt sätt? Ändringsfrekvensen är marginell den aktuella dagen. Pratar vi xvis XML-lösning då? Ett problem i sammnhanget kan vara att det från dessa sidor finns länkar till andra sidor

vilket väl lägger vissa hinder i vägen.

Vidare så har jag några centrala tabeller i databasen (hundar, förare, events), som hämtas i en drös av sammanhang. Även med dessa skulle man väl kunna göra en liknande lösning.

Vad jag är ute efter är alltså att minimera kontakerna med mysql. Att med automatik återskapa sådana "mellanlager" torde inte ta många sekunder.

Några djupa tankar out there?

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon
och kan dra slutsatsen att databashanteringen (ganska omfattande: 400 hundar och lika många hundägare med omfattande och frekevent aktivitet ) är den huvudsakliga flaskhalsen.

Försumbar, inte omfattande. De flesta databaser jag jobbar med dagligen ligger som minst i storleksordningen ett par miljoner poster och inte ett par hundra. Hade du använt Access hade jag kunnat se problem på databassidan, men med mySql är inte detta din flaskhals. Har du analyserat din webbserver (eller ditt webbhotells servrar om du ligger hos någon annan)?

 

Länk till kommentar
Dela på andra webbplatser

Jag ska inte säga emot dej, du har säkert rätt. Men det avgörande är inte antalet poster i tabellerna, utan hur många läsningar som görs mot dom, och på vilket sätt dom är avhängiga varandra.

Om det nu är så att det i mitt fall hänger på kvaliten på servern så ändrar förstås inte detta min frågeställning, om jag inte kan göra nåt åt det. Då har jag ju ännu större anledning att leta efter alternativa lösningar.

Och hur det än är, hjälpmedel som Ajax har troligen tvingats fram av dom skäl som jag anför.

 

Länk till kommentar
Dela på andra webbplatser

Håller delvis med Anjuna, antagligen inte databasen i sig som är flaskhalsen.

Däremot så är det mycket vanligt och därmed högst troligt att databasfrågorna som ställs och ibland anslutningen (samt frånkopplingen) till databasen inte är optimala och därmed bör granskas för att se om du har prestandatjuvar där.

Naturligtvis så innebär en bristande databasdesign även det risk för prestandabrister (bla. genom att tvinga fram mindre effektiva frågor).

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

Länk till kommentar
Dela på andra webbplatser

Om jag har en miljon poster och en sökning eller jag har en post och en miljon som söker så är det väl klart att det senare blir trångt.

 

Jag vill gärna vrida frågeställningen rätt. Vad gäller databasdesign så sysslade jag med detta innan dom flesta av er var födda, och det har inte hänt ett dyft de senaste 30 åren vad gäller teknik. Vilket det däremot har gjort vad gäller övriga mjukvaror, där är jag fast i cobol...

Alltså är jag ganska säker på att jag använder mysql relativt optimalt. Vad jag däremot har svårt att kolla är kvaliten på servern, den är ju inte under min konroll.

 

Men om vi nu bortser från om databasen är flakshals eller inte, så är ju min frågeställning:

Kan jag vinna nåt på att använda mig av "mellanlagring" av mer ellr mindre förformaterad info?

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon
och det har inte hänt ett dyft de senaste 30 åren vad gäller teknik

Åjo, det har det definitivt =)

Men för att avgöra om databassidan är din flaskhals eller ej så måste du börja med två analyser - hur ser dina queries ut och vilka index har du skapat på dina tabeller. Så sent som idag så optimerade jag en databas från att för vissa typer av queries ta uppemot 10 sekunder till ner under 20ms. Hur man designar rätt index är en konst i sig men för att säga mer om vad du behöver titta på så är det bra om du postar de queries du misstänker är flaskhalsar.

 

Innan du gör detta så gör först en prestandatest med någon timer så du verkligen vet att det är databasanropen som är problemet (jag känner inte till vilka timers PHP erbjuder, men det bör väl finnas)

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon
Vad gäller databasdesign så sysslade jag med detta innan dom flesta av er var födda,

Översittarkommentarer är aldrig en bra morot till de man vill ha hjälp av ;)

 

[inlägget ändrat 2008-03-18 22:04:23 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

jan-erik skrev:

Vad gäller databasdesign så sysslade jag med detta innan dom flesta av er var födda[...]

Vilket blir uppenbart tydligt när man tittar på designen du skapat... ;)

 

Nåja, om vi kliver ur sandlådan... så är det ju så att det är omöjligt att veta vad för prestandatester och/eller optimeringar du gjort (eller hur gammal du är eller hur länge du hållt på med utveckling i någon form) då inget gällande detta nämns i ditt ursprungliga inlägg. Därför faller det sig naturligt, i alla fall för mig, att börja med just databasdesign, index, queries etc. när det gäller frågor kring prestanda i en webbapplikation.

Således blir det precis som Anjuna säger till att testa (mha timers) vad det är som tar tid att ladda.

Vet inte vilka verktyg som MySQL erbjuder men något som motsvarar SQL Servers trace bör väl finnas?

 

Anjuna skrev:

I'm out...

LOL! Hoppas verkligen inte att din stridslusta förtagits pga de senaste veckornas "oroligheter"

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

[inlägget ändrat 2008-03-18 22:34:06 av Cluster]

Länk till kommentar
Dela på andra webbplatser

Nä, det har inte hänt ett dugg sen slutet av 70-talet vad gäller databasdesign, däremot är förstås kapaciteten helt annorlunda. Den teknologi som mysql är uppbyggd kring fanns fullt ut i IBM370.

Och det är väl klart att jag hajar till när någon direkt kopplar ihop söktider med antalet poster.

 

Ok för översitteri.

Men lite märkligt tycker jag det är att ni envisas med att fösöka hjälpa mej med ett problem som jag inte behöver hjälp med, och inte intresserar er för vad jag egentligen frågar om.

Ni kanske är lite väl tekniska ibland? ;)

 

 

Länk till kommentar
Dela på andra webbplatser

[...]jag hajar till när någon direkt kopplar ihop söktider med antalet poster.
Och jag hajade till när du menar att ett par hundra poster är omfattande.

 

Ok, nu blev det kanske lite väl mycket polemik i den här tråden men så blir det ibland på eforum, speciellt när trådskaparen bjuder in med "Några djupa tankar out there?" :)

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

Länk till kommentar
Dela på andra webbplatser

tja, inte så farligt polemiskt tycker jag. Det enda som stör mig är att ingen Out There förstått vad jag frågade efter.

 

Länk till kommentar
Dela på andra webbplatser

jag snackade för övrigt inte om ett par hudnraposter, jag snackade om 400x400x400 poster.

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon
Det enda som stör mig är att ingen Out There förstått vad jag frågade efter.

Du har inte nämnt någon specifik plattform så då är det svårt att ge konkreta förslag, men de flesta kompetenta serverspråk erbjuder cachningsmöjligheter och det är nog det du är ute efter. I ex. .Net så skulle du använda dig av klassen System.Web.Caching.

Andra möjligheter är att låta databasen flusha ut xml-filer (eller lämpligt, för ändamålet, annat format) med jämna mellanrum, som du sedan använder som datakälla.

 

jag snackade för övrigt inte om ett par hudnraposter, jag snackade om 400x400x400 poster.

Framgick inte riktigt, hur menar du med denna exponent av tre?

[inlägget ändrat 2008-03-18 22:41:43 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...