Ich bin ziemlich aufgeregt über die neue Mysql XMl Functions.Leistung von MySql Xml-Funktionen?
Jetzt kann ich endlich etwas wie "objektorientierte" Dokumente in meine oldschool relationale Datenbank einbetten.
Betrachten Sie als Beispiel einen Benutzer, der auf Ihrer Website mit facebook connect singt. Sie können ein Objekt für den Benutzer mit der Grafik API abrufen und nette Informationen erhalten. Diese Information kann jedoch stark variieren. Einige Felder können festgelegt werden oder nicht, einige können im Laufe der Zeit usw. hinzugefügt werden.
Nun, wenn Sie gerade in sehr speziellen Bereichen interessiert sind (zum Beispiel Freunde Beziehungen, Geschlecht, Filme ...), können Sie sie in Ihre relationale Datenbank Schema projizieren.
Mit den XMl-Funktionen können Sie jedoch das gesamte Objekt in einem Feld speichern und dann können Ihre verschiedenen Modelle mit der ExtractValue-Funktion auf die Daten zugreifen. Sie können alles sofort speichern, ohne sich sorgen zu müssen, was Sie später benötigen.
Aber was wird die Leistung sein?
Zum Beispiel habe ich eine Tabelle mit 50 000 Einträge, die Benutzer darstellen. Ich habe eine Enum-Feld, das "male", "female
"(oder verschiedene andere Geschlechter politisch korrekt sein) heißt.
Die Leistung von zum Beispiel alle Männer holen sehr schnell sein wird.
Aber was ist so etwas wie
WHERE ExtractValue(userdata, '/gender/') = 'male'
?Wie wird die Leistung variieren, wenn das Objekt größer wird?
Kann ich einen Index maby irgendwie auf spezifi setzen Ed XPath Auswahlen?
Wie arbeiten Feldtypen mit dieser Funktion/Leistung zusammen? Varchar/Blob?
Benötige ich Volltextindizes?
Auf meine Frage zusammenzufassen:
Mysql XML functins groß. Und ich bin sicher, sie sind wirklich großartig, wenn Sie nur strukturierte Daten speichern möchten, die Sie in Ihrer Anwendung abrufen und analysieren.
Aber wie stehen sie in Verfahren, in denen interne Scans/Sortierung/Vergleich/Berechnungen durchgeführt werden?
Kann Mysql dokumentorientierte Datenbanken wie CouchDB/Sesame ersetzen?
Was sind die Vorteile und Kompromisse von XML-Funktionen?
Wie und warum sind sie besser/schlechter als eine dynamische Anwendung, die verschiedene Daten als Attribute speichert?
Zum Beispiel eine Schlüssel/Wert-Tabelle mit einem XPath als Schlüssel und dem Wert als Wert, der mit der Dokumenteinheit verbunden ist.
Hat jemand andere Erfahrungen damit gemacht oder hat etwas Erwähnenswertes bemerkt?
Ich bin immer noch total verrückt, dass diese in erster Linie existieren. Als ich Ihren Link sah, dachte ich, das wäre ein alter Aprilscherz Witz :) –
tröstliche Tatsache, dass nicht einmal Sie alle wissen;) –
Ich bin eigentlich nicht so toll in mySQL darüber hinaus, was ein Web-Entwickler jeden Tag braucht. Ich bin immer noch ratlos darüber, wie * ich * der # 6 Benutzer im Tag wurde :) –