Jestem bardzo podekscytowany nowym Mysql XMl Functions.Wydajność funkcji MySql Xml?
Teraz mogę w końcu osadzić coś w rodzaju "obiektowo zorientowanych" dokumentów w mojej oldschoolowej relacyjnej bazie danych.
Przykładowo w przypadku użycia należy rozważyć użytkownika, który śpiewa w witrynie przy użyciu funkcji Facebook Connect. Możesz pobrać obiekt dla użytkownika za pomocą api wykresu i uzyskać ładne informacje. Informacje te mogą się jednak znacznie różnić. Niektóre pola mogą, ale nie muszą być ustawione, niektóre mogą być dodawane w miarę upływu czasu i tak dalej.
Cóż, jeśli jesteś po prostu zainteresowany specjalnymi dziedzinami (na przykład relacjami z przyjaciółmi, płcią, filmami ...), możesz wyświetlać je w swoim schemacie relacyjnej bazy danych.
Jednak przy użyciu funkcji XMl można przechowywać cały obiekt wewnątrz pola, a następnie różne modele mogą uzyskać dostęp do danych za pomocą funkcji ExtractValue. Możesz przechowywać wszystko od razu, bez potrzeby martwienia się o to, czego będziesz potrzebować później.
Ale jaki będzie występ?
Na przykład mam tabelę z 50 000 pozycji, które reprezentują użytkowych. Mam pole enum stwierdzający "male", "female
"(lub różne inne płcie być politycznie poprawne).
wykonywania na przykład ściągam wszystkie samce będą bardzo szybko.
Ale co o czymś takim
WHERE ExtractValue(userdata, '/gender/') = 'male'
?Jak będzie zmieniać się wydajność jeśli obiekt staje się większe?
mogę maby jakoś umieścić indeksu na specyfi ed wybory xpath?
Jak typy pól współpracują z tymi funkcjami/wydajnością. Varchar/blob?
Czy potrzebuję pełnotekstowych indeksów?
Podsumowując moje pytanie:
functins Mysql XML wyglądają wspaniale. I jestem pewien, że są naprawdę świetne, jeśli chcesz tylko przechowywać dane strukturalne, które pobierasz i analizujesz dalej w swojej aplikacji.
Ale jak będą walczyć w procedurach, w których wykonywane są na nich wewnętrzne skany/sortowanie/porównanie/obliczenia?
Czy MySQL może zastąpić zorientowane na dokumenty bazy danych, takie jak CouchDB/Sesame?
Jakie są zyski i kompromisy funkcji XML?
Jak i dlaczego są lepsze/gorsze od dynamicznej aplikacji przechowującej różne dane jako atrybuty?
Na przykład tabela klucz/wartość z xpath jako kluczem i wartość jako wartość związana z jednostką dokumentu.
Ktoś zrobił z nią jakieś inne wrażenia lub zauważył coś godnego uwagi?
Nadal jestem całkowicie zdenerwowany, że one istnieją w pierwszej kolejności. Kiedy zobaczyłem twój link, pomyślałem, że to był stary żart głupiego kwietnia :) –
Pocieszający fakt, że nawet ty nie wiesz;) –
Nie jestem tak świetny w mySQL poza tym, czego potrzebuje web dev na co dzień. Nadal jestem zdumiony tym, jak * I * stał się numerem 6 w tagu :) –