mrjerk: Studie: MySQL vs. Datei

Beitrag lesen

Hallo,

Mit der Dateilösung hingegen habe ich einen riesen Hash im Hauptspeicher, bei jedem Request entsteht ein Burst. Kommt mir da die Hardware entgegen, ist da was zu Cachen?

Naja, im Prinzip hast Du ja schon so etwas wie einen Cache gebaut, in dem Du alle Daten zu Beginn in den Hauptspeicher lädst (ob von Platte oder Datenbank ist ja dann eigentlich schon egal).

Eine Datenbank wird ja immer dann interessant, wenn Du genau das (also das Laden sämtlicher Daten in den Speicher) mangels genug Arbeitsspeicher eben nicht mehr bewerkstelligen kannst und gezeilt einzelne Daten abfragen musst. So lange Du aber alles in den Hauptspeicher lädst, wird ein Flatfile IMMER schneller sein als eine Datenbank.

Den Overhead für das Aufbauen einer Verbindung kann man übrigens dadurch reduzieren, dass man die Datenbankverbindung offen lässt. In  einer klassischen CGI-Umgebung ist das natürlich Quatsch (denn  da werden nach jedem Request üblicherweise sämtliche File-Handle und somit auch Datenbankverbindungen geschlossen), aber mit FCGI z.b. kann man ja durchaus Mechanismen bauen, bei denen beim Server-Start eine Verbindung aufgebaut wird, die dann für alle Requests gehalten wird.

Noch besser ist es, nicht nur eine DB-Verbindung einzusetzen, sondern einen Connection Pool, der dann gleich eine ganze Reihe von Datenbank-Verbindungen vorhält.

Viele Grüße,
Jörg