AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Zugriff auf MySql Daten im RAM von mehreren Instanzen möglich?
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf MySql Daten im RAM von mehreren Instanzen möglich?

Ein Thema von bogdan · begonnen am 7. Feb 2021 · letzter Beitrag vom 8. Feb 2021
Antwort Antwort
bogdan

Registriert seit: 15. Apr 2013
77 Beiträge
 
#1

AW: Zugriff auf MySql Daten im RAM von mehreren Instanzen möglich?

  Alt 7. Feb 2021, 18:41
Delphi.Narium:

Es ist leider so, dass die Daten nur programmatisch außerhalb der Datenbank ausgewertet werden können.

Auf dem firmen internen Windows Server ist MySQL Workbench installiert.
Es existieren mehrere Datenbanken.
Eine davon hat über 50.000.000 Datensätze.

Auf einem der Arbeitsplatz Laptops ist mein Programm installiert, welche die Daten auswerten muss.

1. Das Programm erzeugt eine SELECT + JOIN Abfrage und holt die Daten aus der MySQL Datenbank. Das Ergebnis reduziert sich auf ca. 10.000.000 Datensätze und wird in den RAM geladen (3-4 GB)

2. Dann werden die Daten mit dem Programm unter verschiedenen Kriterien/Vorgaben ausgewertet. Mit der MySQL Synthax geht das leider nicht.

Es werden sehr viele Kriterien/Vorgaben im Programm erzeugt und in diverser Abhängigkeit die 10.000.000 Daten ausgewertet.

Erzeuge Kriterium 1: a+b+c ---> dann werte die Daten aus
Erzeuge Kriterium 2: b+c+d ---> dann werte die Daten aus
Erzeuge Kriterium 3: a+b+d ---> dann werte die Daten aus
usw.

Hier tummeln sich einige Schleifen, die programmatisch diverse Kriterien erzeugen und bei jeder Änderung müssen alle 10.000.000 Daten von vorne ausgewertet werden.

Um das ganze zu beschleunigen habe ich 3x mein Programm gestartet und die Kriterien verteilt, damit das ganze zügiger abläuft.

Aber um die Daten auszuwerten muss ich diese ja erst mal in das Programm laden (also in den RAM) und dann erzeugen 3x geöffnete Programme mit je 10.000.000 Daten 9-12 GB RAM-Belastung.

juergen
Müsste ich mir anschauen.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

AW: Zugriff auf MySql Daten im RAM von mehreren Instanzen möglich?

  Alt 7. Feb 2021, 19:03
Die Frage war etwas zugespitzt, aber ich sehe es als Aufgabe einer DB, Daten zu halten und verfügbar zu machen. Insofern ist die Frage "wie mache ich 4Gb an Daten für Anwendungen auf meinem PC verfügbar?" Einfach: "Tu sie in eine Datenbank"

Nachdem das Problem inzwischen besser umrissen ist, würde ich 2 Alternativen sehen:

- Zieh die relevanten Datensätze in eine lokale Datenbank. Dann hast du die 4Gb erstmal nur auf der Platte. Die 3 Instanzen können relativ schnell und latenzarm jeden Datensatz lesen
- Lagere die Auswertung nicht in 3 Prozesse sondern ind 3 Thread aus. Solange alle Zugriffe auf die 4GB Daten nur lesend erfolgen, brauchst du auch nix synchronisieren. Du kannst auch einfach jedes Kriterium als eigenen Task anlegen und den Threadpool nutzen. Dann kannst du auch eine moderne 8 Kern CPU auslasten.
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
483 Beiträge
 
#3

AW: Zugriff auf MySql Daten im RAM von mehreren Instanzen möglich?

  Alt 7. Feb 2021, 21:32
Wenn du dir eine lokale SQLite Datenbank anlegst, benötigt das bei 10M Datensätzen etwas Zeit. Selbst mit dem lightning-fast schnellen Framework mORMot, erreichst du vielleicht 100-150K Rows/Second. Siehe den mORMot ORM Benchmark hier. Die Zeit, die du zur Auswertung zur Verfügung hast, sollte dein Vorgehen bestimmen. Wenn 1,5 Minuten zum Zwischenspeichern der Daten kein Problem sind, ist die Verwendung einer lokalen DB, wie die Vorposter schon geschrieben haben, der einfachste Weg.

Bis bald...
Thomas
  Mit Zitat antworten Zitat
bogdan

Registriert seit: 15. Apr 2013
77 Beiträge
 
#4

AW: Zugriff auf MySql Daten im RAM von mehreren Instanzen möglich?

  Alt 8. Feb 2021, 08:31
jfheins

Hmmm, das werde ich mal ausprobieren.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz