XML zamiast MySQL |
XML zamiast MySQL |
30.05.2003, 18:46:49
Post
#1
|
|
Grupa: Zarejestrowani Postów: 222 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) |
Czy plikami XML można (skutecznie i bezproblemowo) zastąpić bazę MySQL? Jestem prawie pewien, że można, ale może są jakieś uwagi, przeciwskazania itp.
Głównie zastanawiam się nad awaryjnością. W przypadku zwykłych plików tekstowych zawsze wszyscy trąbili, że to się psuje, kaszani i w ogóle różne rzeczy się dzieją. Mi się jeszcze nic takiego nie przydarzyło, ale wcale nie wątpie, że to możliwe. Poza tym wygoda to faktycznie żądna. No więc czy jest jakieś zagrożenie, że się coś popsuje w pliku XML? No w końcu to plik tekstowy... stąd te obawy. -------------------- pozdrawiam, chfast
|
|
|
30.05.2003, 19:15:29
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) |
plik XML jest do tego idealny, ale do czasu. W php nie ma wielowątkowości, kolejek, trasakcji itp. Więc taka baza danych (kiedyś coś takiego pisałem i nawet miało działać na zdalnych serwerach, ale zrezygnowałem) nie mogłaby odkładać zapytań w kolejke, więc musiałaby blokować zapytania następne (np. if(file_exists('currently_in_use'), lub flock XML'a)), co spowodowałoby znaczne obniżenie wydajności (SAX, czytanie jest dosyć szybkie i wydajne, ale DOMXML, zmiana i tworzenie, jest bardzo zasobochłonny).
Ogólnie polecam bardzie do zadań, w których nie trzeba danych często zmieniać oraz do stron o mniejszej ogladalności, chyba, że masz bardzo szybki serwer, który będzie mógł pozwolić sobie na takie opuźnienia dla zachowania wielowątkowści oraz spujności! |
|
|
30.05.2003, 19:29:55
Post
#3
|
|
Grupa: Zarejestrowani Postów: 222 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) |
Szczerze mówiąc o tym nawet nie pomyślałem. To faktycznie duże utrudnienie.
Zatanawiałem się nad zastosowaniem XML, bo aktualnie nie posiadam bazy SQL. XML byłby pewnym rozwiązaniem. Narazię jest mi to potrzebne do zarządzania użytkownikami. Użytkownicy zbyt często nie edytują swoich danych. Jednak przy każdej sesji trzeba odczytać dane. Widze pewne rozwiązanie - zapisywać dane każdego użytkownika do osbnego pliku. Tylko nie wiem jak jest z szybkością przeszukiwania katalogów. Jeszcze chciałbym się dowiedzieć coś o wymienionych pakietach (żebym wiedział co czytać). SAX jest do odczytu a DOM do tworzenia plików, tak? Nasuwa się pytanie - w jaki sposób edytować plik? -------------------- pozdrawiam, chfast
|
|
|
30.05.2003, 19:37:40
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) |
hmm, napisałem przecież
Cytat SAX, czytanie jest dosyć szybkie i wydajne, ale DOMXML, zmiana i tworzenie Tworzenie tutaj to nie mam na myśli tworznia plików, ale tworzenie XML'a.
Jeżeli chodzi przeszukiwanie katalogów, to po prostu zapisujesz usera jako user.name.xml i już możesz sprawdzać czy user istnieje za pomocą file_exists. Teraz jest natomiast problem z tym, że pliki takie łatwo byłoby odczytać, więc potrzebowałbyś jakiegoś czegoś w rodzaju katalogu prywatnego (wiele darmowych serwerów je obsługuje). O DomXML i SAX możesz poczytać w manualu, tam jest to naprawdę dobrze wyjaśnione (o ile znasz XML'a, głównie założenia). Jeżeli robisz oddzielne pliki, to nie ma problemu z wielowątkowością (chyba robisz, że jeden username może miec paru userów ) No tyle z moich rad. Teraz już nie powinieneś mieć problemu. |
|
|
4.06.2003, 18:12:55
Post
#5
|
|
Grupa: Zarejestrowani Postów: 222 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) |
Mam problem. Który rozdział manuala opisuje funkcje SAX? Nie moge nic takiego znaleźć.
-------------------- pozdrawiam, chfast
|
|
|
4.06.2003, 18:23:36
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) |
hehe, nazwa jest troche myląca, ale SAX w php jest to po prostu defaultowy XML (co najmniej tak jest to opisane w znanych mi źródłach). Tylko pamiętaj, że działanie SAX'a opiera się na funckjach callbackowych, więc sam tesz będziesz się musiał pomęczyć!
|
|
|
4.06.2003, 20:26:48
Post
#7
|
|
Grupa: Zarejestrowani Postów: 222 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) |
W takim razie to oznacza, że juz korzystałem z funkcji SAX
A korzystając z okazji, że wspomniano o funkcjach callbackowych to jak mozna się odwołać do jakiejś metody obiektu (w moim przypadku chodzi o metodę tej samej klasy). -------------------- pozdrawiam, chfast
|
|
|
4.06.2003, 20:28:26
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) |
a nie jest tak, że zamiast jednego argumentu podajesz dwa (w twoim przypadku ustaw_callback('this', 'metoda'), czy jakoś tak.
|
|
|
4.06.2003, 20:43:18
Post
#9
|
|
Grupa: Zarejestrowani Postów: 222 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) |
Przyznam, że nie bardzo rozumiem. Dla mnie funkcje callbackowe to nowość.
Dokładniejsze informacje mogą pomóc. Mam problem z funckją xml_set_element_handler(). Normalnie jest tak: Kod xml_set_element_handler($parser, 'nazwa_funkcji1', 'nazwa_funkcji2');
Ale jak odwołać się do metody obiektu? ****** Zanim zdąrzyłem to wysłać to już znalazłem odpowiedź. Aby używać parsera w obiekcie należy użyć funkcji xml_set_object(). Podaje składnię: Kod void xml_set_object ( resource parser, object object)
-------------------- pozdrawiam, chfast
|
|
|
Wersja Lo-Fi | Aktualny czas: 26.09.2024 - 20:20 |