kostenloser Webspace werbefrei: lima-city


mysql read only tabellen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    unlikus

    unlikus hat kostenlosen Webspace.

    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)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. g****e

    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
  4. unlikus schrieb:
    Ist es mit mysql eigentlich möglcih tabellen als readonly zu kennzeichnen. Es geht mir hier aber nicht um die Rechte, sondern um Performance.
    so eine möglichkeit ist mir nicht bekannt.

    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)
    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.)
  5. Autor dieses Themas

    unlikus

    unlikus hat kostenlosen Webspace.

    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.
  6. g****e

    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
  7. Autor dieses Themas

    unlikus

    unlikus hat kostenlosen Webspace.

    hab eine tabelle mit 2 Spalten 20 zeilen, bei der sich das wirklich lohnen würde.

    Aber eine andere tabelle mit 10 Spalten und etwa 2000 zeilen, lohnt sich das da auch noch? und wie macht man dann so ein array?
  8. g****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
  9. Autor dieses Themas

    unlikus

    unlikus hat kostenlosen Webspace.

    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 :wall:
    eine kleine frage noch: mach es eine tabelle eigentlich langsamer wenn sie viele Spalten hat (100+), aber man immer nur bestimmte selectiert updates?
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!