Szybkie ładowanie danych z XML

0

Funkcją XMLLoadFile mogę sobie załadować ładnie do tablicy plik xml. Przy dużych plikach jednak to trochę trwa. Czy nie dałoby się jakoś "wybiórczo" z tego XML-a czytać ? :)
Jeśli nie to będę zmuszony zrobić algorytm podziału danych na kilka plików c;

0

Wielowątkowość.

0

Parser SAX tutaj się powinien sprawdzić.

0

Znaczy mój parser jak na razie po prostu ładuje funkcją simplexmlload pliczek do tablicy, dodaje dane i tworzy nowy plik xml zwykłymi operacjami na plikach. Niestety ma to tą wadę że w momencie gdy plik jest zapisywany to otwarcie skrytu i próba otwarcia wyrzuca przeróżne błędy. A to dziwne, bo myślałem, że w momencie zapisu dla innych dostępna jest stara kopia pliku...

0

Wygląda trochę jakbyś miał bazę danych opartą o XML.
Jak duży to plik?

0

Bo mam bazę danych opartą o xml. Są pisane już tak fora i cms-y, a ja po prostu chciałem spróbować. Plik jest aktualnie dużo większy niż będzie (testuje rozwiązania ekstremalne) i zawiera około 15k rekordów po 10 tagów każdy.

XML sprawdza się do celów statycznych. Przy małych ilościach danych jest wydajniejsze niż rozwiązania na mysql, szczególnie na hostingach gdzie połączenie i dostęp z często kiepskim serwerem mysql trochę trwa. Statycznie okej.
Natomiast w przypadku danych dynamicznych kompletnie się nie sprawdza, ponieważ tylko jedna instancja skryptu może zapisywać dane w jednym momencie to raz, a dwa w trakcie tegoż zapisu odczytujący mają problem ;)

Także chyba zapędziłem się w ślepą uliczkę i do mysql-a wrócę. Co myślicie ?

0

Myślę, że powinieneś wydać te osiem złotych miesięcznie na VPSa w OVH i nie mieć jakichś dziwnych problemów z przymulającymi serwerami.
Albo i więcej, jeśli celujesz w coś lepszego.

1

XML dla mnie to tylko do zapisu konfiguracji, albo małych, przenośnych i czytelnych dla ludzi danych (np. zapiski z GPS, jeden przejazd = jeden plik, a nie wszystko do jednego).

Cała baza w XML, bo połączenie z bazą danych na darmowych hostingach jest wolne? No to od tego jest sqlite, żeby zapisywać dane do pliku. Twoja baza na XML-u zawsze sto razy wolniejsza niż oprogramowanie pisane od X lat, które ma podobne zadanie.

A hostingi z wolnymi połączeniami do MySQL widziałem ostatnio 8 lat temu i dotyczyło to tylko niektórych darmowych hostingów. Dowolny hosting za 40zł/rok będzie śmigać.

o mam bazę danych opartą o xml. Są pisane już tak fora i cms-y

Co? Przykłady? Najlepiej więcej niż jeden

1

XML-a stosuj do konfiguracji i importu/exportu.

Do baz danych się nie nadaje - chyba że do takich pokazowych do samouczka.

0

Spodobał mi się ten sposób zapisu danych w xml, jest naturalny. Nie grozi mi injection. Czym jest SQlite ? Czyli istnieje coś operujące na plikach, działające na czystym serwerze only php i nie będące xml-em ? :)

0

http://get-simple.info/start/ - cms

O forum kiedyś czytałem. Faktycznie dużo tego nie ma. Ale myślę że przy dobrej organizacji plików niektóre rzeczy dałoby się zrobić :p

0
Spyciu napisał(a):

Spodobał mi się ten sposób zapisu danych w xml, jest naturalny. Nie grozi mi injection. Czym jest SQlite ? Czyli istnieje coś operujące na plikach, działające na czystym serwerze only php i nie będące xml-em ? :)

Niestety grozi:
https://www.owasp.org/index.php/Testing_for_XML_Injection_%28OTG-INPVAL-008%29
http://www.ws-attacks.org/index.php/XML_Injection

0

Usunę z tekstu znaki specjalne i zamienię na kody (np. &nbps; jest spacją) i mogę spać spokojnie.

1

No ale dlaczego po prostu nie rozwiążesz tego jak człowiek - korzystając z sensownej, przeznaczonej do tego celu bazy danych?

Bo nie, XMLe służące jako DB to nie jest naturalne rozwiązanie - naturalne jest zapisywanie w formie XMLa małego pliku konfiguracyjnego lub RSSa, a nie danych userów czy cokolwiek tam masz.

0

Nie mówię, że chcę. To był raczej eksperyment. I faktycznie wyszło średnio. Nie wiem jak oni tak forum napisali :D

0

Też napisali jako eksperyment, ale pewnie ciut lepiej wyszło. Ale tylko ciut, bo na stronie jak byk jest napisane:

Because GetSimple was built specifically for the small-site market, we feel this is the absolutely best option for data storage.

Czyli: GTFO jak się zacznie sypać przy 15 userach jednocześnie, widziały gały, co brały.

1 użytkowników online, w tym zalogowanych: 0, gości: 1