Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Welcher DB-Manager für eine 100Go-Tabelle?

Ich verwende alle von Ihnen genannten Datenbanken. Für diese Last kann ich MySQL oder PostgreSQL empfehlen, da ich bereits mit noch höherer Last auf PostgreSQL gearbeitet habe. Aber MySQL wird die gleiche Aufgabe auch erledigen - vielleicht sogar besser, weil es von Anfang an für hohe Einfügelast ausgelegt war.

Die Lösung auf PostgreSQL, mit der ich gearbeitet habe, wurde zum Speichern von Systemnachrichten aus dem Telekommunikationsnetz verwendet und konnte problemlos ~ 300 GB Daten pro Tag auf einem Computer sammeln. Aber Sie brauchen die richtige HW-Architektur.

Sie benötigen eine Maschine mit mindestens 8 CPUs, aber mehr ist besser, und Sie müssen mehrere Einfügewarteschlangen haben. Verwenden Sie den Loader in Java oder C oder Golang mit mehr parallelen Bedrohungen und führen Sie Masseneinfügungen von jeder Bedrohung mit dem COPY-Befehl für ~10000 Datensätze in einem Bulk durch. Sie müssen den Verbindungspool verwenden, da PostgreSQL einen höheren Overhead zum Öffnen einer neuen Verbindung hat.

Es hilft Ihnen auch dabei, Daten über mehrere Tablespaces zu verteilen, jeden Tablespace auf einer separaten physischen Festplatte oder besser auf einem separaten physischen Festplatten-Array. Verwenden Sie nach Möglichkeit keine Indizes für Rohdaten. Trennen Sie Ihre Rohdaten von aggregierten Ergebnissen.

Wir hatten eine andere Lösung mit der pl/proxy-Erweiterung für PostgreSQL und mehrere physische Maschinen für nach Zeit partitionierte Rohdaten. Dieses System konnte mindestens 1 TB pro Tag sammeln, aber mit einer angemessenen Anzahl von Slave-Datenbanken sogar noch mehr.

Aber Sie müssen verstehen, dass Sie zur wirklichen Verarbeitung dieser Datenmenge die richtige Hardware mit der richtigen Konfiguration benötigen. Es gibt keine magische Datenbank, die bei einer "Notebook-ähnlichen Konfiguration" Wunder vollbringt...

InfluxDB ist eine wirklich großartige Zeitreihendatenbank und wir verwenden sie zur Überwachung. Ich glaube, mit genügend CPUs und wirklich viel Speicher können Sie es auch verwenden. Ich schätze, Sie benötigen mindestens 64 GB RAM, da Einfügungen mehr Speicher kosten. Wenn also mehr Warteschlangen eingefügt werden, benötigt die Datenbank viel mehr Speicher, da sie alles im Speicher speichert und automatisch Indizes für Tags erstellt.