Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wydajność funkcji MySql Xml?

Mam tendencję do robienia komentarzy podobnych do Pekki, ale myślę, że powodem, dla którego nie możemy się z tego śmiać, jest twoje stwierdzenie „Te informacje mogą się jednak znacznie różnić”. Oznacza to, że planowanie analizowania tego wszystkiego i wyświetlania go w bazie danych nie jest realistyczne.

Nie mogę odpowiedzieć na wszystkie twoje pytania, ale mogę odpowiedzieć na niektóre z nich.

Przede wszystkim nie mogę powiedzieć o wydajności na MySQL. Widziałem to w SQL Server, przetestowałem i stwierdziłem, że SQL Server wykonuje wyodrębnianie XML w pamięci bardzo powoli, wydawało mi się, że czyta z dysku, ale to trochę przesada. Inni mogą to kwestionować, ale to właśnie znalazłem.

"Czy Mysql może zastąpić bazy danych zorientowane na dokumenty, takie jak CouchDB/Sesame?" To pytanie jest nieco zbyt szerokie, ale w twoim przypadku użycie MySQL pozwala zachować zgodność z ACID dla tych fragmentów XML, zakładając, że używasz InnoDB, czego nie można powiedzieć automatycznie w przypadku niektórych z tych baz danych zorientowanych na dokumenty.

„Jak i dlaczego są lepsze/gorsze niż dynamiczna aplikacja, która przechowuje różne dane jako atrybuty?” Myślę, że to naprawdę kwestia stylu. Dostajesz fragmenty XML, które są (przypuszczalnie) udokumentowane, a MySQL może po nich nawigować. Jeśli po prostu zachowasz je jako takie, zaoszczędzisz krok. Co można by zyskać, przekonwertując je na coś innego?

Dokumentacja MySQL sugeruje, że plik XML zostanie umieszczony w polu clob. Wydajność może ucierpieć na większych dokumentach. Być może wtedy zidentyfikujesz poddokumenty, które chcesz regularnie wyłamywać i umieszczać w tabeli podrzędnej.

W ten sam sposób, jeśli istnieją konkretne dokumenty podrzędne, o których wiesz, że chcesz się dowiedzieć, możesz utworzyć tabelę podrzędną „HasDocs”, wykonać trochę wstępne przetwarzanie i wypełnić ją nazwami dokumentów podrzędnych z ich liczy. Przyczyniłoby się to do szybszej analizy statystycznej, a także przyspieszyło znajdowanie dokumentów, które mają określone dokumenty podrzędne.

Chciałbym móc powiedzieć więcej, mam nadzieję, że to pomoże.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zdalne łączenie się z bazą danych MySQL

  2. bbPress:Jak znaleźć mapowania załączników do odpowiednich postów

  3. Wprowadzanie zmiennej ilości danych do bazy danych z najlepszą możliwą normalizacją

  4. Wstaw do wielu tabel w jednym zapytaniu

  5. Trudność ze zmienną długością opóźnienia