03 Jan/11
Kategorier: PHP, Exempel, Prestanda
Varför hämta filer parallellt?
I normala fall när du surfar runt på webben så hanterar webbläsaren alla nerladdningar. Alla moderna webbläsare hämtar de filer (CSS, JavaScript, osv) som finns på en webbplats parallellt. Dvs, alla filer hämtas samtidigt istället för att nerladdningarna ska behöva vänta på varandra innan de kan börja.
Låt säga att du hämtar information från andra webbplatser för att lagra och sedan presentera den på din egna webbplats. Ett exempel kan vara affiliatenätverk, som ofta erbjuder information om produkter via XML-filer. Här kan det vara trevligt att hämta all data parallellt för att snabba upp processen.
(läs hela artikeln)
Permalink
Gå till toppen
23 Dec/10
Kategorier: PHP, MySQL, Prestanda
Använd inte ORDER BY RAND() om du har många rader i tabellen
För att få ut 10 rader i slumpad ordning från en tabell i MySQL så använder man väldigt ofta funktionen ORDER BY RAND() ihop med LIMIT:
SELECT uid, username, passwd FROM users ORDER BY RAND() LIMIT 10;
Detta är ingen fara så länge det handlar om mindre data (~250 rader) men vad händer om du ställer samma fråga till en tabell med 25000 rader? Då kommer MySQL generera 25000 slumpade tal, vilket är ganska så tungt ur prestandasynpunkt. Därefter behöver MySQL sortera dessa 25000 tal för att veta vilket tal som är lägst, vilket också är tungt då MySQL skapar temporära tabeller för detta.
(läs hela artikeln)
Permalink
Gå till toppen
12 Dec/10
Kategorier: PHP, Webb, Säkerhet, Google
Analysera User-Agent (fel sätt)
Av diverse olika anledningar vill man ibland skilja på riktiga besökare och robotar, så som Googlebot, Slurp och Bingbot. Det absolut vanligaste sättet är att man analyserar besökarens User-Agent-header och agerar olika beroende på om den innhåller t.ex Googlebot eller ej. Självklart ska man inte presentera olika innehåll för besökare eftersom man då riskerar att bli straffad för cloaking. Dock kan man ju agera olika internt, för saker som statistik eller liknande.
Skrämmande nog har jag dock sett ett flertal forum som även listar privata delar av webbplatsen för en besökare som har ordet Googlebot i sin User-Agent-header. Detta är inte rätt sätt att lösa det hela eftersom en besökare enkelt kan ändra sin User-Agent-header.
(läs hela artikeln)
Permalink
Gå till toppen
08 Dec/10
Kategorier: PHP, Webb, Exempel, NoSQL, Prestanda
Vad är memcached?
memcached är en server som enkelt låter dig lagra data i minnet för ökad prestanda. Memcache utvecklades ursprungligen av Brad Fitzpatrick åt LiveJournal 2003, men används idag av flera stora webbplatser så som Facebook, Twitter, YouTube, Reddit och många fler.
Tanken med att lagra data i minnet är att minska belastningen på den databasserver som blir flaskhalsen på en större webbplats. Många webbplatser idag har dynamiskt innehåll som sällan eller kanske till och med aldrig förändras. Ett exempel kan vara en lista med länkar som visas i footern på varje sida över hela webbplatsen. Dessa sparas så klart i en databas så en administratör enkelt kan lägga till och ta bort länkar då det behövs. Även om de ändras väldigt sällan så måste de fortfarande hämtas från databasservern för varenda sidvisning.
(läs hela artikeln)
Permalink
Gå till toppen