PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mySQL Abfragen zwischenspeichern?



Nachtschatten
29-08-2006, 14:09
Hallo,

habe einen Webshop aufgestellt, der auf Joomla und Virtuemart basiert.
Es wurden zahlreiche Änderungen daran vorgenommen und auch die DB Abfragen sollen nun etwas optimiert werden.
Nun zu dem Problem:

Der Webspace liegt bei 1und1. DB Abfragen sind nicht so perfomant wie man es gerne hätte. Das Problem liegt auch direkt am Anbieter, da ein Test bei einem anderen Anbieter zufriedenstellend gelaufen ist. Allerdings ist ein Wechsel nicht möglich.
Daher meine Frage.. gibt es eine Möglichkeit (ohne Root Zugriff) MySQL Daten mittels PHP oder anderweitig zu cachen (einige identische Abfragen kommen sehr häufig vor)?

quinte17
29-08-2006, 17:20
normalerweise cached die mysql automatisch.. sofern sich die darunterliegenden daten nicht ständig ändern...
auf indexe sollte halt zugegriffen werden...

mehr wüsste ich eh nicht mehr

greetz

compost
29-08-2006, 20:10
Vielleicht helfen dir Views oder Datenbank-Prozeduren/Funktionen, um die Anfragen performanter zu machen. Hängt natürlich von der MySQL-Version ab. Muss dann glaub ich MySQL 5 sein.


Jens

Nachtschatten
30-08-2006, 08:36
@quinte17:

Kann leider nicht in der Konfiguration nachgucken, da wie gesagt, nur Webhoster Paket.

@compost:

hmm.. leider nur MySQL 4.

Also muss ich mal gucken wie ich das anderweitig hinkriege.

RHBaum
30-08-2006, 09:55
wenn man komplizierte DB modelle hat, und das zusammenbauen von views fuer die darstellung relativ lange dauert, baut man oftmals temporaere tabellen (geht ohne views von der db und so) - Denormalisierung.

Alternativ kann man auch die daten in aufgeloester form in nen lokalen cache / lokale db schiessen ....

weiss ja nich was du fuer moeglichkeiten hasst, und mit LAMP installations und rechte und anbieter so problemen kenn ich mich nu gar nich aus^^

ciao ...

Romanday
30-08-2006, 19:51
Daher meine Frage.. gibt es eine Möglichkeit (ohne Root Zugriff) MySQL Daten mittels PHP oder anderweitig zu cachen (einige identische Abfragen kommen sehr häufig vor)?

simple version:

Abfrage erstellen, Ergebnis in Datei schreiben, includen();
Nach voreingestellter Zeit Vorgang wiederhohlen.


advanced version:

keine Datei, sondern eine temp.table nehmen.

Das ist doch nicht so schwer, oder?