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

Leistung von MySql-Xml-Funktionen?

Ich neige dazu, Kommentare zu machen, die denen von Pekka ähneln, aber ich denke, der Grund, warum wir darüber nicht lachen können, ist Ihre Aussage "Diese Informationen können jedoch stark variieren." Das bedeutet, dass es nicht realistisch ist, alles zu parsen und in die Datenbank zu projizieren.

Ich kann nicht alle Ihre Fragen beantworten, aber ich kann einige davon beantworten.

Vor allem kann ich Ihnen nichts über die Leistung von MySQL sagen. Ich habe es in SQL Server gesehen, getestet und festgestellt, dass SQL Server XML-Extraktionen im Arbeitsspeicher durchführt sehr langsam, für mich schien es, als würde es von der Festplatte lesen, aber das ist ein bisschen übertrieben. Andere mögen das bestreiten, aber das habe ich gefunden.

"Kann Mysql dokumentenorientierte Datenbanken wie CouchDB/Sesame ersetzen?" Diese Frage ist etwas zu weit gefasst, aber in Ihrem Fall können Sie mit MySQL die ACID-Konformität für diese XML-Blöcke beibehalten, vorausgesetzt, Sie verwenden InnoDB, was für einige dieser dokumentenorientierten Datenbanken nicht automatisch gesagt werden kann.

"Wie und warum sind sie besser/schlechter als eine dynamische Anwendung, die verschiedene Daten als Attribute speichert?" Ich denke, das ist wirklich eine Frage des Stils. Sie erhalten XML-Blöcke, die (vermutlich) dokumentiert sind, und MySQL kann durch sie navigieren. Wenn Sie sie einfach so belassen, sparen Sie einen Schritt. Was würde man gewinnen, wenn man sie in etwas anderes umwandelt?

Die MySQL-Dokumentation schlägt vor, dass die XML-Datei in ein Clob-Feld eingefügt wird. Bei größeren Dokumenten kann die Leistung leiden. Vielleicht erkennen Sie dann Unterdokumente, die Sie regelmäßig ausgliedern und in einer untergeordneten Tabelle ablegen möchten.

Wenn es bestimmte Unterdokumente gibt, von denen Sie wissen, dass Sie sie wissen möchten, können Sie eine untergeordnete Tabelle "HasDocs" erstellen, ein wenig vorverarbeiten und sie mit Namen von Unterdokumenten mit ihren füllen zählt. Dies würde eine schnellere statistische Analyse ermöglichen und auch das Auffinden von Dokumenten mit bestimmten untergeordneten Dokumenten beschleunigen.

Ich wünschte, ich könnte mehr sagen, hoffe, das hilft.