WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Många databasanrop (https://www.wn.se/forum/showthread.php?t=25390)

andi 2007-11-30 11:31

Jag har en sida med ett menysystem som skapas dynamiskt utifrån en databas. Tabellerna som innehåller menyns olika huvudnivåer, mellannivåer och undernivåer innehåller kanske 500 rader. Kommer detta bli väldigt resurskrävande även fast tabellerna är små? Alltså tar varje anrop en massa resurser även om SQL-frågan i sig går snabbt? Är det kanske läge att använda en databas-cache?

jonny 2007-11-30 11:55

Menyerna kanske kan genereras en gång när applikationen startar och sparas i någon form av applikationsvariabel iställeT?

andi 2007-11-30 12:02

Citat:

Originally posted by jonny@Nov 30 2007, 12:55
Menyerna kanske kan genereras en gång när applikationen startar och sparas i någon form av applikationsvariabel iställeT?

Hur menar du då? Menyn genereras vid varje anrop men den ser annorlunda ut på olika sidor beroende på vilka val användaren gör. Det är ingen utfällbar meny som ser likadan ut varje gång. Jämför med tex DN.SE. Om man väljer "SPORT" får man en annan undermeny än om man väljer "KULTUR" om du förstår vad jag menar.

abcd 2007-11-30 13:20

Ja, det är dags att cachea... Eller. Det beror ju också lite på hur mycket trafik du har.
Håll koll på serverbelastningen och var beredd på att sätta in åtgärder när systemet börja bli lite svagt i knäna.

Vilken typ av cachenig som är lämpligt kan jag inte riktigt svara på. Det beror på i vilken miljö applikationen körs i, vilket programmeringsspråk som används osv.

Weaver 2007-11-30 15:58

Behöver menyn lagras i databasen? Filsystemet är alltid snabbare.

coredev 2007-11-30 16:56

Kolla upp memcached.. låter som det är perfekt för dina behov..

Memcache är guld.. :)

studiox 2007-11-30 17:24

Beror på vad du har för databas. MySQL är grymt snabb på SELECT (Det är iofs. dom flesta databaser).

Jag gör precis som du (2D menysystem som blir ett 3D träd på sajterna). Jag kör det på cirka 10 sajter (det är samma kod och databas på alla) i ett portalsystem jag har. Vi har cirka 20-30.000 unika besökare i månaden men det tar inga resurser att tala om. Vi har just nu nästan 300 pages (Som genererar menyerna) och det går snabbt. Jag gör ju inte en query på alla 300 varje gång dock (Det gör säkert inte du heller)

andi 2007-12-01 15:29

Citat:

Originally posted by Weaver@Nov 30 2007, 16:58
Behöver menyn lagras i databasen? Filsystemet är alltid snabbare.
Menyn ändras hyfsat ofta och det görs i en windowsklient som är kopplad till databasen så det känns smidigt att ha den lagrad där. Jag undrade mest bara om varje anrop tar resurser i sig även om själva frågan är snabb. Blir kanske smidigast med memcached, då kan jag ju använda det till övriga delar av databasen också. Brukar man ha memcached på en egen burk eller kan man köra php, mysql och memcached på samma?

macson 2007-12-03 22:24

Citat:

Originally posted by coredev@Nov 30 2007, 17:56
Kolla upp memcached.. låter som det är perfekt för dina behov..

Memcache är guld.. :)

Precis! Håller med! Det är extremt bra!

/ M

danjel 2007-12-04 17:40

Tror inte du behöver göra något.
Har sett sidor som kör 100 queries..no problemos


Alla tider är GMT +2. Klockan är nu 01:36.

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