WauWau: Perfomance: großes Array vs. Db-Zugriff bei jedem Request

Beitrag lesen

Hola,

ich bin mal wieder am Überlegen. Und dabei bin ich auf die Idee
gekommen, dass mein Projekt ganz schon groß werden könnte und ich
die Navigation gerne auf besserem Wege speichern würde. Momentan
wird die Navigation der ersten sowie zweiten Hierarchie nämlich
noch direkt in einem Template[1] gespeichert, die dritte "Hierarchie"
von einem Array dynamisch reingeladen[2].

Im Gesamtding also so, dass ein statisches normales Menü[1] da ist,
und dann ein "Submenu", dargestellt in [2].

Jetzt habe ich überlegt, ob ich das ganze nicht ein bisschen besser
regele. Denn z.B. habe ich vor, das ganze als Mehrdesign-Möglichkeit
zu machen, die evv. auf unterschiedlichen Templates beruht. Hier
müsste ich in jedem Template das Menü speichern, das ist sehr un-
günstig. Deswegen wollte ich das Menü in seinen (min.) 3 Hierarchien
in einer DB speichern, da ich sowieso MySQL für das Projekt nutze,
bietet es sich auch sehr gut an.

Nur komme ich letztenendes zum Schluss, dass es extrem Serverlastig
wird. Wegen jedem Request nämlich muss dann eine Verbindung zur DB
hergestellt werden (dann bekommt sie richtig viel zu tun ;), die
Daten gesammelt werden, das ganze ins Design eingebaut werden.

Eine andere Möglichkeit wäre es, das ganze in eienm Array in irgend-
einer Datei zu speichern[3]. Ob das wirklich besser ist?

Meine Frage ist: Wie machen CMS-Systemchen das eigentlich? Ich meine,
die arbeiten ja auch mit Templates, alle Inhalte sind in einer DB
gespeichert, ist das bei denen nicht wahnsinnig speicherlastig?

Gruß,
WauWau

---------------------------------------------------- Fußnoten

[1] Also z.B. sowas:
    <ul id="navigation">
      <li><a href="bla">Punkt1</a>
          <ul>
            <li><a href="blo">Untermenüpunkt1</a></li>
            ...
          </ul></li>
      ...
    </ul>

[2] Z.B.
function site_navigation_specialmenu($menuid)
{
  $saved = array();

$saved[1] = array(); // saved[0] nicht benutzt.
    $saved[1][0] = 'Portal';
    $saved[1][1] = '<li><a href="/?sitemap">Sitemap</a></li><li><a href="/news/">News</a></li><li><a href="/news/admin/">News Administration</a></li>';
  $saved[2] = array();
    $saved[2][0] = 'Überschrift';
    $saved[2][1] = '<li>Listenpunkte</li><li>...</li>';
 ....
}

[3] dann eben z.B.

menu = array(
  array("Beschriftung", "URI",
     array(
        array("untermenunkt", "URI"),
        array("untermenüpunkt2", "URI)
     ),
  array("Punkt 2", "URI")
);

...

--
ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
Self ist der WauWau