bunny_007: Caching einer mysql_abfrage

Hallo,

ich habe folgenden Code:

---------------------------------------------------------
$res = mysql_query("SELECT * FROM site");
while ($data[$n] = mysql_fetch_assoc($res)) {$n++;}
---------------------------------------------------------

Dann habe ich erstemal so ne fette $data array....da aber diese abfrage bei jedem Besucher leider vonstatten geht, verbraucht er mehr ressourcen, als er muss...
nun ist so auch leider so, dass ich nicht die fertige html seite cachen kann, da im weiteren code leider wiederum verschiene abfragen bei jedem benutzer auftreten können....

unter der voraussetzung, dass die MySQL Tabelle site statisch ist, wie kann ich unter php die $data variable benutzerübergreifend cachen und nur wieder nach einer erneuerung der Tabelle site abfragen???????

Ich bin mittlerweile am Verzeiweifeln :..(

Bunny

  1. Grüße,
    je nach (......) KÖNNTE (vllt, womöglich) das speichern in einer txt mit anschließendem auslesen in ein array was bringen - muss du aber testen.
    MFG
    bleicher

    --
    __________________________-
    Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
    http://www.sexgott-or-not.com/?test=428054
    1. Moin Hasi,

      Grüße,
      je nach (......) KÖNNTE (vllt, womöglich) das speichern in einer txt mit anschließendem auslesen in ein array was bringen - muss du aber testen.

      dazu noch ein paar Verweise: serialize() && unserialize()

      Wenn die Möglichkeit besteht, heißt Dein Stichwort aber shared memory.

      Gruß aus Berlin!
      eddi

      --
      Der Verweis auf die Grundlagen Deines Handelns, ist das Joch zur Freiheit.
      Aber so gilt: Allen Leuten Recht getan, ist keine Kunst, weil's jeder kann.
      1. Boa, danke :))))))
        ich glaube das hört sich gut an ^^

        naja, will nämlich gerne eine kleine, aber häufig verwendete Datenmenge im RAM halten...hmm...muss mal dann ausprobieren....

        1. Re:

          naja, will nämlich gerne eine kleine, aber häufig verwendete Datenmenge im RAM halten...hmm...muss mal dann ausprobieren....

          dann informiere Dich doch gleich mal über "/dev/shm"!

          Gruß aus Berlin!
          eddi

          --
          Der Verweis auf die Grundlagen Deines Handelns, ist das Joch zur Freiheit.
          Aber so gilt: Allen Leuten Recht getan, ist keine Kunst, weil's jeder kann.
  2. Hallo

    $res = mysql_query("SELECT * FROM site");

    erstens gibt es die WHERE-Klausel.
    Zweitens gibt es nahezu keinen Grund, irgendwo SELECT * statt SELECT spaltenliste zu verwenden.

    Dann habe ich erstemal so ne fette $data array

    Da bist Du selbst schuld.

    Freundliche Grüße

    Vinzenz