login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Database gegevens opslaan in cache

Offline shamrock - 03/05/2012 19:12
Avatar van shamrockLid Ik heb een webshop waar nu ongeveer 10000 producten in staan. Omdat er overdag geregeld tientallen mensen tegelijkertijd op de website producten bekijken worden er veel database aanroepen gedaan. Hierdoor wordt de site vrij traag.

Nu heb ik begrepen dat je makkelijk database gegevens kunt opslaan als cache (zie onderstaande code).

Dit werkt ook. Hij selecteerd alles uit het tekstfile en alleen als de file ouder is dan een bepaalde tijd verbind hij met de database en update hij de lijst.

Heel mooi, maar nu heb ik dus een tekstbestand met alle producten uit die database. Hoe kan ik dit nu het beste maken zodat ik hierin kan zoeken, verschillende categorieën kan weergeven etc.. (net zoals uit de database maar dan uit de tekstfile).

Bedankt

Plaatscode: 141759

7 antwoorden

Gesponsorde links
Offline icemar - 03/05/2012 20:05
Avatar van icemar Lid Ik neem aan dat je produkten ook aan een vategorie zitten gekoppeld in het cache bestand.
Je kan dan ook eerst zoeken door de chache file / database en aan de hand van de categorie dit tonen.
Offline shamrock - 03/05/2012 20:09
Avatar van shamrock Lid dat snap ik, zo gebeurt het in de database, maar hoe kan ik dat uit een cache txt file doen?
Als je de code bekijkt zie je dat nu via een foreach lus alle resultaten getoond worden. Hoe kan ik hierin zoeken.

cache bestand is geserialized
Offline icemar - 03/05/2012 20:20
Avatar van icemar Lid Als het chache bestand geserialized zal dit niet gaan want hij heeft dan geen vaste waardes die op gehaald kunnen worden.

Wat je wel kan doen is een zoek tabel maken waar je in kan zoeken die elke nacht geupdate wordt om het zoeken te versnellen.

Maar als je site u al traag is met 10.000 producten dan kan je beter kijken of de server waar het opdraait een upgrade kan krijgen.
Offline Martijn - 04/05/2012 11:33
Avatar van Martijn Crew PHP Sorteren en filteren wil je liever niet in PHP doen. Een (mysql) database kan dat vele, vele malen sneller, en efficienter.

Wat icemar zegt is the way to go. Eerst in een database zetten, en er daarna mee gaan werken. Scheelt, afgezien van het sorteren, ook resources, je hoeft namelijk niet meer te wachten tot de file is ingeladen, de server hoeft niet élke keer opnieuw dezelfde taak uit te voeren.
Offline Maarten - 04/05/2012 14:48
Avatar van Maarten Erelid Kijk eens naar Lucene (Solr). Ik heb dit onlangs gebruikt om snel te zoeken in 170 miljoen records, elk bestaande uit XML bestanden, in totaal goed voor 135.67 GB. MySQL kon er zo efficient niet meer mee overweg 

Je moet wel een degelijke server hebben om dat ding op te draaien, als ik nu een zoekopdracht uitvoer duurt het ook nog een goeie minuut, maar is toch al veel beter dan met MySQL zelf.
Offline shamrock - 05/05/2012 11:16
Avatar van shamrock Lid
icemar schreef:
Als het chache bestand geserialized zal dit niet gaan want hij heeft dan geen vaste waardes die op gehaald kunnen worden.

Wat je wel kan doen is een zoek tabel maken waar je in kan zoeken die elke nacht geupdate wordt om het zoeken te versnellen.

Maar als je site u al traag is met 10.000 producten dan kan je beter kijken of de server waar het opdraait een upgrade kan krijgen.


Kun je dit uitleggen (die zoek tabel). Lijkt me interessant maar snap niet precies hoe ik dit moet opbouwen. Ik heb een lijst met producten.

Deze heeft een categorie en een subcategorie (id's van de tabel categorie en subcategorie). Kun je de structuur uitleggen? Het maken lukt dan wel als ik begrijp wat ik moet doen

Bedankt
Offline icemar - 06/05/2012 08:04
Avatar van icemar Lid Je maakt een tabel aan met daarin de volgende row's
cat_id
subcat_id
product_id
product_name
product_decription
En welke ifo je nog meer bij het zoeken wil laten tonen

Daarna maak je een cronjob aan die je elke nacht laat draaien een deze velden update als er een wijziging is geweest.

Deze tabel gebruik je dan voor je zoekfunctie.
De cat_name en subcate_name kan je uit de andere tabel halen als deze getoond moeten worden.

Hopelijk kom je er zo uit.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.337s