Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: TXT vs MYSQL
Forum PHP.pl > Forum > PHP
treewood
Prosze wyrazic swoje opinie na temat tego co lepiej i dlaczego stosowac?
Bazy danych np. w MySQl czy np w plikach txt.

Rozumiem, ze hasel itd. raczej w txt lepiej nie trzymac ale za pomoca licznika czasu generowania strony przez dwa testowane przeze mnie serwery uniksowe (komercyjne, nie darmowe konta) zauwazylem duze roznice w czasie generowania np. bazy ksiazek czy filmow divx. W 1000 pozycji byly to roznice ... 2-3 sekund (czas liczylem w microtime(). Na poczatku i na koncu strony). W sumie nie tak duzo ...

Kolumny w MySQL i w bazie txt to:
id,nazwa ang,nazwa pl,gatunek,jakosc(od 1 do 10),ile cd zajmuje,informacje dodatkowe

wygladalo to tak np:
10|terminator 2|elektroniczny morderca smile.gif|s-f|8|1|arnold szwarc, ...|
itd. itp.

Oczywiscie wyswietlanie zrobilem tak, ze pokazywal sie calutki spis, bez zadnego sorotowania itd. czyli proste zapytanie
"select * from nazwa_tabeli" i nic wiecej. w bazie txt wygladalo to podobnie.

Jakie sa u was zdania na temat poslugiwania sie bazami ... danych. co preferujecie bardziej i do czego. mam w sumie zdanie wyrobione juz od dawna ale ... warto powymieniac sie informacjami.
Dla mnie txt zawsze byly lepszym wyzwaniem bo nie da sie tak latwo ich obslugiwac jak MySQL [;
itsme
ten temat jest juz poruszany na php Pro i jest wszystko ładnieopisane

zaś moje zdanie do Twojego posta: Prawcować na plikach *.txt tylko dlatego że to jest trudniejsze questionmark.gif? napisz od poczatku WinShita to jest dopiero wyzwanie

bazy danych są lepsze pod każdym względem. Oczywiście jeżeli nie masz możliwości pracy na bazie danych to pozostaje *.txt sad.gif( współczuje

do czego stosuję: ja do wszystkiego od linków (dynamicznie ustawiam kolejność, podczepiam pod blok, zmieniam skrypt - bez konieczności grzebania w kodzie), zapisywanie logowań sesji danych userów tego jest od groma i ciut ciut ....
kwiatek
Moim zdaniem lepiej używać sql niz txt. Mimo wszystko wydaje mi się, że MySQL jest dużo bezpieczniejszy od plików tekstrowych wiem z własnego doświadczenia. Od czasu jak mi padło to co miałem na plikach tekstowych to robie tylko na bazach. Fakt, że zrobienie obsługi na plikach to większe wyzwanie ale też wymaga więcej czasu. To chyba następny argument za sqlem. A im łatwiej tymlepiej winksmiley.jpg
treewood
Itsme << nie pod kazdym wzgledem. TXT sa szybciej obslugiwane ... o wiele szybciej laduja sie na przegladarce (sprawdzalem z zegarkiem w reku po 10 razy na kazdy ze skryptow i wyciagalem srednie) oraz szybciej sie generuja na serwerze.

Kwiatek << ale gdy masz np. publikowany spis filmow na stronie to po cholere ci bezpieczenstwo danych? co ci sie moze wysypac?

Jak mowilem ... bazy np. MySQL sa wiadomo lepsze pod wieloma wzgledami ale jesli chodzi o zwykle wyswietlanie spisu ksiazek, filmow itd. i nawet adminowanie nimi to ... ciezko zrobic by MySQL byl szybciej obslugiwany i otwierany niz txt.

Z reszta potestujcie sami. Roznice sa widoczne. Na sdi przy zerowym obciazeniu lacza sdi spis np. 1000 filmow ladowal sie na bazie txt o jakies ... 3-4 sekundy szybciej niz na MySQL.
scanner
Wyciągnij z tego twojego *.txt wszystkie filmy z 2000 roku zaczynające sie na liter A produkcji francuskiej i wyswietl je w kolejnosci Z-A
No chyba że obsługa *.txt u Ciebie polega na <?php include('filmy.txt') ?> - to ja wysiadam.
Co do tego SDI - od keidy łącze klienta ma wpływ na szybkość generowania strony? Pojęcia ci się mylą.(chyba ze serwer na sdi stoi)
itsme
Cytat
Prędkość liniowego odczytu danych z bazy jest zwykle porównywalna z odczytem z systemu plików. Tutaj nie ma co szukać przewagi któregoś z rozwiązań - jeśli wszystko jest dobrze skonfigurowane to różnice powinny być na poziomie błędu statystycznego.  
Co innego jeśli chcemy czegoś poszukać - tutaj baza jest absolutnie bezkonkurencyjna. Dlatego jeśli potrzebujemy wydajności, najlepiej trzymać co się da w bazie danych i zadbać równocześnie o to, żeby sama baza i sprzęt na którym pracuje były skonfigurowane optymalnie.  

nic dodać nic ując

Jeżeli coś jest białe to nie pytaj się dlaczego możesz spokojnie uznać to za pewnik ... szkoda czasu na badanie dlaczego to jest białe tak samo szkoda czasu na badanie co jest szybsze gdyż np mySQL musi mięc 2 000 000 000 rekordów oraz 60 000 tabel (lub kolumn juz nei pamietam) aby zaczeło się "mulić". I teraz nawet przy 40 000 rekordów znajdz rekord lub rekordy gdzie znajduje się określony ciąg znaków, nastepnie zrób tak aby było ułożone to malejąco biorąc pod uwagę datę wprowadzenia wykluczając jednocześnie rekordy wprowadzone przed godzina 12:00:00 oczywiście pracujesz na txt.

Życzę szczęścia ...
treewood
scanner << czytaj uwaznie co pisalem. napisalem, ze strona ladowala mi sie na sdi dluzej jesli byly dane w MySQL niz w txt. A na dodatek za pomoca uzycia funkcji microtime() zauwazylem, ze strona takze byla generowana dluzej na serwerze w przypadku MySQL niz w txt.
Dane nie byly pobierane za pomoca include
proste otwarcie pliku, petla for i listowanie ... a nastepnie przekazywane poszczegolnych zmiennych do funkcji echo

Itsme << czuje sie tak jakbys mi probowal udowodnic ze bazy MySQL sa lepsze. No przeciez ja to wiem [; nie upieram sie przy swoim przecie. Tylko chce przekazac iz ciezko zrobic by MySQL byl szybciej obslugiwany jesli wykonujemy proste polecenia np. select * from tabela order by id itp.
Nie ma mowy pliki sa szybsze i to jest ciezko to zagiecia. Sortowanie jest na plikach (oczywiscie do pewnego momentu) a w spisie np. filmow wystarczy jedynie sortowanie po id (czyli by bylo widac co bylo ostatnio dodane) oraz po nazwie filmu ang i pol. I w tym przypadku pliki szybciej sa obslugiwane niz baza MySQL. A to dziwne bo przeciez w obsludze plikow musialem sie troche napetlic by sortowac wg jakichs kryteriow a w MySQL bylo to tylko select * from tabela order by nazwa

To mnie wlasnie dziwi ... pomimo wiekszej ilosc instrukcji w obsludze txt tak czy siak strona byla szybciej generowana i szybciej mi sie wczytala na przegladarce.

Ciekaw jestem (bede sprawdzal) do jakiego momentu pliki beda jeszcze szybciej obslugiwane tzn. dodawac bede coraz wiecej bajerow i opcji obslugi na txt i tak samo na MySQL i moze w koncu kiedys bedzie tak, ze MySQL szybciej bedzie sie generowalo i szybciej mi sie wczyta na stronie.

Dragossani zapewne zna sie lepiej niz ja bo ja w sumie nie dorastam pewnie do piet waszym umiejetnosciom ale ... przeciez nie wazna jest teoria tylko fakty i prawda. to, ze jak mi sie dane laduja z pliku szybciej i generuja sie na serwerze szybciej i sprawdzalem to na 2 serwerach po 10 razy ladowalem na kazda baze to ciezko powiedziec ze MySQL jest szybszy.

Moj znajomy baldhors przeczytal te posty i napisal mi oto tresc (nie jest zarejestrowany dlatego wklejam za niego)
baldhorse
"wyobraz sobie taka sytuacje wysylasz zapytanie do bazy
select * from xxx
czy ty myslisz ze takie operacje wykonuja sie bezczasowo,
ze baza z calymi swoimi zasobami tylko czeka zeby wyswietlic wynik twojego zapytania?
nie badz naiwny to wszystko musi sie zrobic, wiadomo jakie narzuty funkcji sa na sql tu nie ma czarow wszystko musi trwac ,
im cos jest bardziej skomplikowane tym dluzej sie "mieli",
dla mnie jasne jest ze dobrze napisana obsluga plikow bedzie szybsza bo ja wiem czego potrzebuje i eliminuje rzeczy
niepotrzebnie spowalniajace oczywiscie baza sql daje wieksza elastycznosc ale ZAWSZE kosztem szybkosci
inna sprawa jest to ze do sqlowej bazy jest sie zdecydowanie latwiej podpiac niz napisac cala dobrze dzialajaca obsluge
na plikach stad powszechne mniemanie ze plika sa "be" zreszta nie czarujmy sie zyjemy w czasach gdy wiekszosc WEBMASTEROW korzysta z gotowcow w ktorych polowy
rzeczy nie rozumieja wazne ze dziala i juz jest RULEZ smile.gif
ps do itsme: dla jednych biale to #ffffff a wielu sie nabierze ze biale to #dddddd sprawa podejscia
co do samej idei pisana na bazie sqlowej czy tez na plikach, mam to gdzies bo potrafie sobie i z tym i z tym poradzic
wszystko zalezy od zapotrzebowania a moje osobiste preferencje znikaja w otchlaniach niebytu po otrzymaniu zapotrzebowania od klienta"
zombie
Przede wszystkim zapisywanie do *.txt jest do dupy. Jak 2 osoby naraz dopisuja do pliku, to wychodza bledy. Chyba, ze kazda katalog jest kolumną a plik komórką.

W predkosci nie ma roznicy, bo niby skad? I tu i tu operacje sa przeciez po stronie serwera i w obu przypadkach dane gdzies musza byc zapisane.

...rzecz jasna query jest bez porownania...
itsme
powiem inaczej: wyniki podjętych prób sprawdzenia szybkosci bazy danych do plikow txt sa tutaj. To nie jest teoria. Do Twojego kolegi: nie neguję pracy na txt tylko stwierdzam ze praca na mySQL jest latwiesza.
On bierze wszystkie kolory miesza miesza miesza i wychodzi biały i maluje w 2 godziny dni. Zas cala operacja trwa 1 tydzien.
Ja ide kupic farbe taniej 1 dzien przed malowaniem i maluje sciany w 2 godziny i 3 minuty.

Wnioski:
1. mniej pracy muszę włożyć w tworzenie projektu.
2. zmiejszam koszty.
3. operacja twoerzenia strony trwa krócej.
4. róznica po między 2:00 a 2:03 wynosi 3 minuty co nie ma znaczenia dla ludzi o łączu z modemem. skoro czeka juz 2 h na otwarcie się strony to to samo uzyska za 3 minuty. Inaczej skoro czeka 9 sekund na otwarcie strony to naprawde zauważy róznicę 9.1 s.

dodatkowe uwagi:
jestem ciekaw jak wpływa otwieranie plikow txt na pamieć servera ile to zajmuje itp.
DeyV
Częściowo masz rację. Mimo wszystko myslę, ze dobrze warto byś się zapoznał z tematem Need for S... na forum php Pro. Sam miałem przyjemność przeprowadzić serię testów w tej tematyce, (podane wyniki), które pokazuję, że jednak MySQL jest napradę zaskakująco szybkie. Nie piszę tego, bo np. teraz jest moda na używanie baz. Co więcej - sam nie rozumiem, czemu tak się dzieje, jednak fakt faktem - jeśli wyciągniecie kliku rekordów z małej bazy trwa tyle samo (lub wolniej o 2 - 5 %) niż z pliku, to ja jednak wolę bazę, przy której mam niemal pewność, że drobny błąd w moim skrypcie nie rozwali mi całej struktury danych.
baldhorse
do: zombie

"zapisywanie do pliku jest do dupy jak 2 osoby zapisuja to wychodza bledy"
nie mam ochoty dyskutowac z osobnikami ktorzy nie potrafia korzystac nawet z dokumentacji

co do drugiej czesci wypowiedzi lepiej nie bede sie ustosunkowywal
dziecko lepiej wroc do swojej piaskownicy...

- - - - - - - - - - - - - - - - - -

do itsme:
nie neguje tego ze przy pomocy baz danych szybciej pewne rzeczy mozna osiagnac, to oczywiste
skoro zamiast wklepywac hektary kodu wstawiam tylko zapytania sqlowe
i nie chodzi tu o ta roznice xx dziesiatych sekundy przy otwieraniu strony
mnie interesuja realne zyski z odciazenia serwera przy stosowaniu plikow w scisle okreslonych sytuacjach
jasne ze czesto korzystam z baz bo po prostu to jest wygodniejsze ale czasem sa sytuacje gdy musze sie wspomagac
plikami a czasem przejsc calkowicie na nie , samo zycie, nigdzie nie ma idealnych rozwiazan
pozdrawiam
kurtz
Cytat
mnie interesuja realne zyski z odciazenia serwera przy stosowaniu plikow w scisle okreslonych sytuacjach
jasne ze czesto korzystam z baz bo po prostu to jest wygodniejsze ale czasem sa sytuacje gdy musze sie wspomagac
plikami a czasem przejsc calkowicie na nie , samo zycie, nigdzie nie ma idealnych rozwiazan
pozdrawiam

zalety plikow wg mnie
1) masz dostep gdy baza padnie / jest zbyt obicazona - pozwalaja tobie w latwy sposob zbuforowac wynik - radze tego nie lekcewazyc.
2) latwiejsze do przegladania (subiektywne) niz baza danych.
3) lepszy sposob na bardzo duzo danych

ps
zombie tez zycze wiecej przygod manualem ;)
KaMeLeOn
Kiedyś dołączyłem do pewnej strony licznik....
Zrobiłem go szybko na pliku *.txt i działał bardzo dobrze dopóki...
No właśnie, na serwerze była awaria sprzętowa, ktoś wszedł na
stronę i plik padł... angrysmiley.gif Takie rzeczy też się zdarzają...
I teraz pomyśl co by było gdybyś wsadził 1000 rekordów...
zombie
Cytat
do: zombie  
co do drugiej czesci wypowiedzi lepiej nie bede sie ustosunkowywal
dziecko lepiej wroc do swojej piaskownicy...


Dobrze już wracam... I tak tata wygania mnie od kompa.
kurtz
Cytat
I teraz pomyśl co by było gdybyś wsadził 1000 rekordów...
wgral aktualny backup
KaMeLeOn
Cytat
wgrał aktualny backup

Nie każdy pomyśli żeby zrobić...
kurtz
Cytat
Cytat
wgrał aktualny backup

Nie każdy pomyśli żeby zrobić...
jak zalezy mu to pomysli... zeby sam sie tworzyl ;)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.