MySQL gegen große XML-Datei (Performance)

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

MySQL gegen große XML-Datei (Performance)

Beitrag von charlytango »

Hi

Ich möchte etliche Einträge in einer großen XML Datei (iTunes Bibliothek um die 20MB) mit einer Datenbanktabelle aus einer MySQL DB abgleichen.
Genauer: fehlende oder falsche Pfadangaben zu einzelnen Tracks aktualisieren.

Es geht um eine Performancefrage.
Die iTunes XML Struktur ist IHMO alles andere als nachvollziehbar oder hält sich an irgendeinen Standard. Keine Ahnung was die dabei geraucht haben.
Irgendeine Art xpath oder sowas scheint da nicht zu funktionieren - jedenfalls hab ich es nicht geschafft.

Also dann das DOM-Modell durchsteppen und individuell analysieren.

Zum Synchronisieren wird eben eine Stuktur durchgesteppt und in der jeweils anderen gesucht und ersetzt.

Ist nun die Suche in dieser schrägen XML-Struktur schneller oder die Suche über Index in einer DB-Tabelle ?

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: MySQL gegen große XML-Datei (Performance)

Beitrag von Socke »

charlytango hat geschrieben:
Fr 2. Apr 2021, 17:25
Ist nun die Suche in dieser schrägen XML-Struktur schneller oder die Suche über Index in einer DB-Tabelle ?
Es dürfte wohl weniger an der XML-Datei liegen, sondern an dem durch die unklare Struktur notwendigen ineffizienten Suchalgorithmus.
Insofern dürftest du wohl über eine strukturierte Tabelle schneller deine Datensätze finden.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: MySQL gegen große XML-Datei (Performance)

Beitrag von af0815 »

Grundlegend würde ich mal überlegen, wenn ich die xml zerlegt habe, das gleich im Speicher zu lassen und mit der Struktur direkt zu arbeiten. Jeder weitere Zwischenschritt ist dann wieder mit Aufwand verbunden. Weil auch SQL muss seine Indizies aufbauen. Das kann man im Speicher genauso. Was anderes ist, wenn du die Datei aufheben willst und später damit weiterarbeiten, bzw. gegen den letzten Stand prüfen willst.
Wenn es nur einmalig ist, so würde ich es im Speicher laufen lassen. 20 MB sind ja heutzutage nichts mehr, was mich aufregt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten