XML prównanie wydajności z bazami danych

Usłyszałem niedawno opinię, która wprowadziła mnie lekko rzecz biorąc w zakłopotanie:

(zapisanych tak po prostu na dysku) :o

Czy rzeczywiście w pewnych sytuacjach może być to prawdą, jak tak to kiedy? Mówimy tu o przechowywaniu np treści stron www a nie przechowywaniu malej liczby informacji “konfiguracyjnych”.

Moim zdaniem wybór między XML a SQL powinien być dokonywany przy konkretnym projekcie. Dużo zależy od umiejętności programisty, to w jakim stopniu będzie zoptymalizowany sam mechanizm pobierania danych. Dodam tylko że niekiedy pliki tekstowe/XML/INI bywały szybsze niż SQL, a jednak moim zdaniem przy bardziej obszernych bazach danych szybsza jest baza oparta o SQL.

Czy mógłbyś podać przykład?

Zastanawiam się nad wyborem efektywnej bazy danych do projektu www, który niestety będzie w dużej mierze oparty o przeszukiwanie tej bazy danych (na wszelkie możliwe sposoby). Masz jakieś doświadczenia co do efektywności? Przeglądałem na sieci i zasadniczo w różnych testach najpopularniejszy MySQL wygląda kiepskawo, poza tym MySQL ma dość okrojone funkcje programistyczne w SQL jak procedury składowane :frowning: . Najwydajniejsze wygląda oracle, ale ta jest rzadko dostępna na hostingach (pewnie ze względu na to, że płatna). Osobiście cenię sobie postgre, ale tą też nie często instalują. Jest jeszcze MsSQL, ale nie wiem jak współpracuje ona z php, a nie chciałbym projektu opierać o ASP.NET.

Jakieś opinie?

Podstawowa rzecz - operacje na plikach są znacznie szybsze niż te związane z dodatkowymi serwerami DB. Oczywiście przy dużych rozmiarach bazy, czas dostępu do potężnych plików nie jest rewelacyjny. No i jeszcze jedna bardzo ważna sprawa, MySQL, PostgreSQL, MSSQL, Oracle, DB2, to wszystko to są relacyjne bazy danych, bazy danych budowane w oparciu o XML to zasadniczo bazy hierarchiczne, więc dobór jest poniekąd zależny od tego co chcesz w danej bazie przechowywać.

Jeżeli o mnie chodzi, to ja bym na Twoim miejscu poszukał czegoś z PostgreSQL’e,. bo również mam do niego spory sentyment. Natomiast co do komunikacji MSSQL - php, przy wykorzystaniu PDO nie ma najmniejszego problemu.

Dziękuje za odpowiedź :D.

Wydawało mi się też, że w bazę danych są wbudowane określone mechanizmy usprawniające wyszukiwanie (index), czego nie ma z przyczyn oczywistych w plikach, więc pewnie musiałbym je sam implementować, co nie koniecznie oznacza lepszą implementacje.

Ale jest XQuery, to może nie tyle mechanizm indeksowania co język zapytań, ale zmienia podejście znacznie.

Ogólnie całe to porównanie to jak pytanie - co jest lepsze samochód czy samolot. Teoretycznie samolot(baza) osiąga większą prędkość ale jeśli mamy do przejechania 20km to czas startu/lądowania(podłączenia do bazy) będzie trwał dłużej niż gdyby wsiąść w samochód :stuck_out_tongue: Najproszszy jest chyba podział - pliki konfiguracyjne i wymiana z innymi programami - pliki xml, cała reszta w bazie

Ja tam gdzieś kiedyś czytałem, że do 10000 krotek warto postawić na XMLa. Ale jak już wspomniałem, to zupełnie różne modele danych, więc warto też zwrócić uwagę na to co w tej bazie ma być przechowywane.