mysql read only tabellen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfrage
array
aufruf
brei
datum
ersten tabelle
file
index
kennzeichnen
merkmal
optimieren
optimierung
packen
performance
spalten
tabelle
url
wahl
zeile
zugriff
-
Ist es mit mysql eigentlich möglcih tabellen als readonly zu kennzeichnen. Es geht mir hier aber nicht um die Rechte, sondern um Performance. Die tabelle wird von keinem php script bearbeitet, sondern nur ausgelesen. Die einzigen Änderungen würde ich manuell vornehmen.
Welche Engine ist dafür am besten geegnet, bzw gibt es möglichtkeiten solche tabellen zu optimieren.(außer natürlich mit indizes) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich denke, dass InnoDB fixer sein sollte für dich. Die Selects sind, soweit ich weiß, mit InnoDB schneller, und da du bei ReadOnly hauptsächlich Selects ausführst, sollte es fixer sein^^
Sonst sind mir Optimierungen so direkt nicht bekannt. Wenn es eine Readonly Tabelle ist, kannst du diese allerdings auch in einem Cachefile zwischenspeichern, besser gesagt als PHP File Cachen, weil der Speicherinterne Zugriff im PHP noch schneller ist, als eine SQL Anfrage. Zumindest solltest du also einen Wrapper um diese Tabelle packen, der die Anfragen über mehrere Aufrufe hinweg minimiert, indem er die Daten cached.
Liebe Grüße -
unlikus schrieb:
so eine möglichkeit ist mir nicht bekannt.
Ist es mit mysql eigentlich möglcih tabellen als readonly zu kennzeichnen. Es geht mir hier aber nicht um die Rechte, sondern um Performance.
Die tabelle wird von keinem php script bearbeitet, sondern nur ausgelesen. Die einzigen Änderungen würde ich manuell vornehmen.
optimierung ist in diesam fall irrelevant, bis auf den wahl von InnoDB, wie @ggamee es richtig schrieb. für nur lesen aus tabellen verwende einfach die HANDLER syntax. wenn du performance willst, dann ist das unvergleichlich viel schneller als irgend etwas anders! (hat allerdings andere einschränkungen.)
Welche Engine ist dafür am besten geegnet, bzw gibt es möglichtkeiten solche tabellen zu optimieren.(außer natürlich mit indizes) -
ggamee schrieb:
Sonst sind mir Optimierungen so direkt nicht bekannt. Wenn es eine Readonly Tabelle ist, kannst du diese allerdings auch in einem Cachefile zwischenspeichern, besser gesagt als PHP File Cachen, weil der Speicherinterne Zugriff im PHP noch schneller ist, als eine SQL Anfrage. Zumindest solltest du also einen Wrapper um diese Tabelle packen, der die Anfragen über mehrere Aufrufe hinweg minimiert, indem er die Daten cached.
Liebe Grüße
meinst ich soll ein php file mit einem array machen indem die daten drin sind, oder ist was anderes gemeint?
Wenn ja, gibt es eine einfache möglichkeit aus einer tabelle eine solche Datei zu erstellen?
Und ist das wirklich schneller, da ja immer alle daten in das array geladen werden. -
Ja, ganz besonders, wenn du die Daten nicht änderst, sind sie in einem PHP File um Welten schneller geladen.
$arr = array(1, 2, 3); $phpCode = var_export($arr, true); echo $phpCode;
Liebe Grüße -
Bei der ersten Tabelle würde es sich lohnen, jo. Bei der zweiten wäre das nicht so effizient.
Eine wichtige Frage ist: Wie oft greifst du auf diese Daten zu? Was sind diese Daten? Und wie kannst du sie Formatieren?
Die erste Tabelle ist ein Key => Value Pair. Diese kannst du einfach in einem Array abbilden. Und mit gerade mal 20 einträgen ist es im Array ein sehr schneller Cache. Dies solltest du in einem PHP File Cachen.
Bei den zweiten sind das quasi 2000 Objekte mit 10 Attributen. Das jedesmal wieder zu laden wäre viel zu ineffizient. Du wirst außerdem nicht jeden Aufruf alle 2000 Zeilen brauchen, oder? Was für Merkmale gibt es? Kannst du die Datensätze in viele kleine Gruppen aufspalten? Dann kannst du sie vllt auch in PHP cachen. Geht das nicht, sondern ist ein Brei, aus dem du ab und an mal 1 Datensatz brauchst, dann lohnt sich das nicht.
Also: Was für Daten sind das? Wie sind sie Formatiert? Wie oft greifst du auf diese zu?
Liebe Grüße -
Ligst richtig, ich brauche nur besimmte datensätze davon und greife nicht besonders oft darauf zu, kann mir auch nicht vorstellen, dass das effizietn sein soll, und daher lasse ich die daten besser in der DB.
Bei der ersten tabelle, hätte ich aber eigentlich selbst auf die Idee mit dem array kommen müssen
eine kleine frage noch: mach es eine tabelle eigentlich langsamer wenn sie viele Spalten hat (100+), aber man immer nur bestimmte selectiert updates? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage