Hallo Leute,
ich spiele gerade mit einer MySQL-Datenbank herum und weiß nicht so
recht, wo die Leistungsgrenzen bei MySQL liegen. Ich möchte das gerne
an einer Beispieltabelle aufzeigen:
CREATE TABLE ProcStats (
Hostname VARCHAR(255) NOT NULL,
Date DATE NOT NULL,
Time TIME NOT NULL,
User FLOAT NOT NULL,
Nice FLOAT NOT NULL,
System FLOAT NOT NULL,
Idle FLOAT NOT NULL,
IOWait FLOAT NOT NULL,
Total FLOAT NOT NULL,
New FLOAT NOT NULL
);
In diese Tabelle sollen Statistiken verschiedener Hosts geschrieben werden
und genau da liegt mein Problem. Jetzt habe ich beispielsweise 30 Hosts,
die ihre Auslastung alle 15 Sekunden in diese Tabelle schreiben.
Die Tabelle wächst also in Zeilen pro
Tag = 172.800
Woche = 1.209.600
Monat = 5.184.000
Anders sieht es schon aus, wenn zum Beispiel ein ISP 5000 Server hat.
Tag = 1.200.000
Woche = 28.800.000
Monat = 864.000.000
Und das ist noch nicht alles, denn 5000 Server ist noch relativ wenig.
Hinzu kommt, dass der Schreibinterval geringer aber auch höher sein
kann. Für meine Planung möchte ich gerne von diesen Zahlen ausgehen.
Wie baue ich nun am besten die Tabellenstruktur? In meinem alten Schema
hatte ich alles ohne Datenbank realisiert und für jeden Tag eine neue
Datei erstellt, das würde ich aber hier für zu aufwendig halten. Wäre eine
Tabelle für jeden Server besser, also
ProcStats_Servername oder
doch lieber
ProcStats_Servername_Datum um die Anzahl Zeilen
pro Tabelle zu verringern? Oder soll ich es genau so belassen, wie es im
Moment ist? Ich möchte an dieser Stelle noch einwerfen, dass ich andere
Tabellen habe, wo für jedes Netzwerkdevice eine Zeile geschrieben wird.
Für Hilfe wäre ich super dankbar.
Greez,
opi\n\n
<!--EDIT|opi|1147693503-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.