Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Need for Speed, czyli rozważania dotyczące prędkości
W czym wolisz zapisywać dane?
W czym wolisz zapisywać dane?
Pliki Txt (mechanizmy PHP) [ 37 ] ** [11.08%]
Baza MySQL [ 297 ] ** [88.92%]
Suma głosów: 192
Goście nie mogą głosować 
DeyV
post
Post #1





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Od dawna stosowane są mechanizmy służące do zapisywania wyników z bazy danych w plikach tekstowych, w celu przyspieszenie pracy skryptów (cash). I jest to całkiem logiczne, szczególnie w przypadku bardziej złożonych zapytań.
Jednak ostatnio, chyba wraz z pojawieniem się najnowszej wersji xmb_forum (Partagium) zwróciłem uwagę na nową tendencję: zastępowanie plików tekstowych bazą danych. W forum tym wszystkie pliki szablonów (templates) zostały umieszczone w bazie. I przyznam się szczerze, że mocno mnie to zaskoczyło. Bo choć do zalet stosowania zapisu w bazie chyba nikogo nie trzeba przekonywać (łatwość w aktualizacji, katalogowaniu, brak problemów z nadawaniem CHMOD itp.) to jednak przekonany byłem, że rozwiązanie takie musi być o wiele wolniejsze.
Skłoniło mnie to do przeprowadzenia serii testów. Umieszczam tu kilka z wyników, które mam nadzieję skłonią Was do zastanowienie się nad tym tematem. Wszystkie zostały wykonane przy pomocy malutkiego skryptu zapisującego i przeliczającego wyniki, który można ściągnąć stąd:
www.mStudio.nQ.pl/download/scrypty/czas/czas.zip na Windows XP, z Apachem 1,3, php 4.3 oraz MySQL 3.23
A tu jest przykład kodu testów

A1. wyświetlamy zawartość małego pliku (1,4 KB) z pliku tekstowego (wyniki w sekundach):
Cytat
Ilość prób=20
średni czas = 0.00299039483070
max czas=0.0046200752;
min_czas= 0.0020439625
suma = 0.0598078966
A2. Ten sam tekst z bazy MySQL zawierającej tylko ten jeden rekord:
Cytat
Ilość prób=20
średni czas = 0.00293679833412 (mniej niż z pliku !)
max czas=0.0047850609;
min_czas= 0.0023930073
suma = 0.0587359667
A3. Taki sam tekst, lecz z tabeli zawierającej około 200 rekordów
Cytat
Ilość prób=20
średni czas = 0.00319704413414
max czas=0.0045739412
min_czas= 0.0025489330
suma = 0.0639408827

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

B1. wyświetlamy zawartość pliku (61 KB) z pliku tekstowego (wyniki w sekundach):
Cytat
Ilość prób=20
średni czas = 0. 07095720171928
max czas=0. 1114130020;
min_czas= 0. 0573480129
suma = 1. 4191440344
B2. Ten sam tekst z bazy MySQL zawierającej tylko ten jeden rekord:
Cytat
Ilość prób=20
średni czas = 0. 09079620242119  
max czas=0. 1551539898;
min_czas= 0. 0670330524
suma = 1. 8159240484
B3. Taki sam tekst, lecz z tabeli zawierającej około 200 rekordów
Cytat
Ilość prób=20
średni czas = 0. 08866938948631
max czas=0. 1459870338
min_czas= 0. 0688790083
suma = 1. 7733877897
Podsumowanie:
Pliki rzeczywiście zazwyczaj są szybsze, ale nie tak bardzo, jak by się mogło wydawać. Zaskakujące efekty dało również porównanie wyników MySQL. Okazało się, że wielkość bazy (przynajmniej w porównaniu 1-200) nie ma wpływu na prędkość wykonywania zapytań. Czasami wręcz (sic!) większa baza jest szybsza...
Co o tym sądzicie?


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post

Posty w temacie
- DeyV   Need for Speed, czyli rozważania dotyczące prędkości   27.01.2003, 15:54:08
- - It's_me   Jezeli chodzi o mnie to ja zawsze bylem bazodanowc...   27.01.2003, 16:21:36
- - scanner   Odkąd przerzucilem sie z plików na BD, to nie mam ...   29.01.2003, 12:03:36
- - DeyV   Jednak pojawia się pytanie: Jak daleko się posuwać...   29.01.2003, 12:21:59
- - kurtz   Re: Need for Speed, czyli rozważania dotyczące prędkości   29.01.2003, 12:32:32
- - dragossani   Prędkość liniowego odczytu danych z bazy jest zwyk...   29.01.2003, 13:29:53
- - Seth   A co sadzicie o XMLu jako pewnym zamienniku bazy d...   2.02.2003, 13:17:22
- - dragossani   Od biedy można spróbować posłużyć się XML'em jako ...   3.02.2003, 11:52:54
- - Seth   Czyli XML tylko jako wzorzec ?   3.02.2003, 12:56:08
- - dragossani   No, powiedzmy jako źródło informacji na poziomie s...   4.02.2003, 14:21:55
- - Seth   juz rozumiem   4.02.2003, 15:51:44
- - Mati   ...   14.02.2003, 01:48:37
- - Picia   Bazy pliki i inne...   17.07.2003, 17:51:34
- - Omega   W sumie pliki są bardziej powszechne... W necie o ...   17.07.2003, 17:59:34
- - e-Gandalf   Re: Bazy pliki i inne...   17.07.2003, 18:44:55
- - Omega   Z tego co wiem płatna licencja jest potrzebna gdy ...   17.07.2003, 19:16:56
- - Picia   Licencja i Widoki   17.07.2003, 19:17:14
- - borec   ja tam jestem za mysql po 1. 0.001 sek to dla mni...   19.07.2003, 12:33:01
- - e-Gandalf   Cytatpo 3. jak sie ma szybkiego serwa to tylko wyg...   19.07.2003, 12:41:43
- - squid   CytatJednak pojawia się pytanie: Jak daleko się po...   19.07.2003, 14:45:15
- - Omega   Pliki są wygodniejsze nie tylko dla mn iejszych st...   20.07.2003, 14:24:47
- - lewal   cale rozwazania tocza sie nad przewaga plikow nad ...   23.10.2003, 02:12:10
- - msulik   Jaką pamięć masz na myśli? Mówisz o shared memory ...   12.11.2003, 00:52:12
- - DaNTe   CytatZ tego co wiem płatna licencja jest potrzebna...   18.02.2004, 23:43:33
- - dooshek   Z MySQLem jest tak, ze tak na prawde jest bardzo w...   19.02.2004, 22:52:31
- - enceladus   Z doświadczenia polecam stosowanie squid-a w roli ...   20.02.2004, 00:14:10
- - halfik   CytatZ MySQLem jest tak, ze tak na prawde jest bar...   25.02.2004, 15:46:29
- - RoVeR   Ja używam plikuw *.php jako bazy i mam to co z txt...   26.02.2004, 07:27:32
- - halfik   CytatJa używam plikuw *.php jako bazy i mam to co ...   28.02.2004, 12:19:49
- - bamboos   Witam!! Ja na serverze nie mam dostępu do bazy dan...   28.02.2004, 13:05:01
- - enceladus   Tak wlasnie sobie to czytam i pomyslalem że cała d...   28.02.2004, 13:11:01
- - bigZbig   Powtorze za poprzednikiem, że nie ma sensu prowadz...   26.08.2004, 14:52:19
- - ActivePlayer   Pisalem ostatnio database_layer z automatyczną obs...   28.08.2004, 00:02:29
- - squid   Cytat(bigZbig @ 2004-08-26 15:52:19)Natomiast...   11.09.2004, 12:03:55
- - Vertical   W bazie po prostu piszesz zapytanie, a baza zwraca...   28.09.2004, 09:56:59
- - Krolik   CytatCytat Z MySQLem jest tak, ze tak na prawde je...   22.11.2004, 11:10:44
- - awides   mysql -> dane pliki cache -> buforowanie   22.11.2004, 23:02:01
- - ShaXbee   To mój pierwszy post na Forum php Pro. Oby wyszedł...   19.01.2005, 22:22:11
- - bela_666   Cytat[Error : Błąd] [404] File Not Found : Plik n...   20.01.2005, 00:43:12
- - hawk   Pomijając prostą kwestię istnienia lub nie istnien...   20.01.2005, 09:05:31
- - ShaXbee   I tu tkwi problem. Uzywam PHP5 i SimpleXML. Nieste...   20.01.2005, 13:12:52
- - hawk   Co do SimpleXML: to jest znany bug php. Workaround...   20.01.2005, 14:37:55
- - bela_666   Cytat(hawk @ 2005-01-20 14:37:55)Co do shm: a...   20.01.2005, 15:18:21
- - hawk   System plików siedzący w pamięci. Link: http://www...   20.01.2005, 17:35:11
- - Krolik   Linux automatycznie cache'uje pliki w pamieci....   21.01.2005, 13:46:16
- - squid   MySQL i pewnie inne bazy ma typ tabeli ktora przet...   21.01.2005, 23:19:45
- - NuLL   IMHO - dyskusja lekko pozbawiona sensu - trzebaby ...   22.01.2005, 17:29:25
- - awides   @squid chodzi ci pewnie o HEAP, jest jeden problem...   23.01.2005, 09:40:36
- - NuLL   Trochę odgrzeje jeśli można Co jest lepsze czyst...   8.06.2005, 22:52:45
- - bela_666   Hwao gdzieś benchmark zrobił, poszukaj   8.06.2005, 23:22:53
- - chmolu   W moich testach zapisywanie zawartości pliku ini j...   9.06.2005, 05:23:56
- - NuLL   Dzięki - u mnie też tak wynikło choć trochę nie ch...   9.06.2005, 17:08:10


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 09:29