F
Fabi_K
Aktives Mitglied
Thread Starter
- Dabei seit
- 04.05.2007
- Beiträge
- 175
- Reaktionspunkte
- 8
Moinsen,
in letzter Zeit habe ich beunruhigend regelmäßig mit Tabellen zu tun, die um die 100.000 bis 500.000 und teilweise sogar mehr Datensätze enthalten.
DMBS ist bisher immer MySQL gewesen.
MySQL arbeitet relativ zügig, wenn ich einen einfachen SELECT auf eine der großen Tabellen absetze. Gebrauche ich jedoch JOINS auf zwei oder mehr (Gott bewahre) Tabellen kommt es gut und gerne vor, daß MySQL so zehn bis zwölf Minuten nur am ackern ist.
Ich wollte jetzt mal wissen, wie man vorgehen kann, die Geschwindigkeit zu verbessern.
Ein wenig habe ich mir darüber auch bereits den Kopf zerbrochen. Eine Möglichkeit wäre den JOIN Programmatisch zu lösen. Also beiden Tabellen einzeln (SELECT * FROM x und SELECT * FROM y) einlesen und dann in eigenen Datensätzen ablegen.
Problem hierbei ist, daß der Arbeitsspeicher des Datenbank-Clients dicht geschrieben wird. Und wenn eine Sprache wie PHP zum Einsatz kommt (leider viel zu häufig für meine Geschmack, aber so is es nu ma), wird der solange das PHP-Script läuft auch nicht mehr frei gegeben.
Eine weiter Möglichkeit sehe ich im Cachen der Daten. MySQL macht das zwar, hilft aber auch nicht wirklich. Ich dachte eher an einen weiteren Prozess, der die Tabellen im Arbeitsspeicher hält und bei Änderungen in der Datenbank die Erforderlichen Daten nachlädt. Gibt es da evtl. eine Möglichkeit für MySQL?
Testweise wollte ich einen SOAP-Webservice schreiben, der diesen Zweck erfüllt. Wenn es aber schon eine Lösung gibt, kann ich mir diese Zeit sparen.
Und sonst ein anderes DBMS, welches gut mit großen Datenbeständen umgehen kann. Gibt's da was? Soweit ich informiert bin, soll ja MySQL schon sehr schnell sein. Nicht umsonst setzt Google auf MySQL.
So. Bin für alle Vorschläge offen.
Gruß Fabian
in letzter Zeit habe ich beunruhigend regelmäßig mit Tabellen zu tun, die um die 100.000 bis 500.000 und teilweise sogar mehr Datensätze enthalten.
DMBS ist bisher immer MySQL gewesen.
MySQL arbeitet relativ zügig, wenn ich einen einfachen SELECT auf eine der großen Tabellen absetze. Gebrauche ich jedoch JOINS auf zwei oder mehr (Gott bewahre) Tabellen kommt es gut und gerne vor, daß MySQL so zehn bis zwölf Minuten nur am ackern ist.
Ich wollte jetzt mal wissen, wie man vorgehen kann, die Geschwindigkeit zu verbessern.
Ein wenig habe ich mir darüber auch bereits den Kopf zerbrochen. Eine Möglichkeit wäre den JOIN Programmatisch zu lösen. Also beiden Tabellen einzeln (SELECT * FROM x und SELECT * FROM y) einlesen und dann in eigenen Datensätzen ablegen.
Problem hierbei ist, daß der Arbeitsspeicher des Datenbank-Clients dicht geschrieben wird. Und wenn eine Sprache wie PHP zum Einsatz kommt (leider viel zu häufig für meine Geschmack, aber so is es nu ma), wird der solange das PHP-Script läuft auch nicht mehr frei gegeben.
Eine weiter Möglichkeit sehe ich im Cachen der Daten. MySQL macht das zwar, hilft aber auch nicht wirklich. Ich dachte eher an einen weiteren Prozess, der die Tabellen im Arbeitsspeicher hält und bei Änderungen in der Datenbank die Erforderlichen Daten nachlädt. Gibt es da evtl. eine Möglichkeit für MySQL?
Testweise wollte ich einen SOAP-Webservice schreiben, der diesen Zweck erfüllt. Wenn es aber schon eine Lösung gibt, kann ich mir diese Zeit sparen.
Und sonst ein anderes DBMS, welches gut mit großen Datenbeständen umgehen kann. Gibt's da was? Soweit ich informiert bin, soll ja MySQL schon sehr schnell sein. Nicht umsonst setzt Google auf MySQL.
So. Bin für alle Vorschläge offen.
Gruß Fabian