adrix88
29.03.2013, 17:27:14
Witam. Potrzebuje przechowywać tablice z konfiguracją modułów. Chciałbym wiedzieć które rozwiązanie jest waszym zdaniem wydajniejsze?
1. Przechowywanie tablicy w oddzielnym pliku konfiguracyjnym i wczytywanie jej przy pomocy include(), gdy jest taka potrzeba.
2. Przechowywanie zserializowanej tablicy w polu TEXT bazy mysql?
Które rozwiązanie będzie szybsze i wydajniejsze? Czy include tablicy z pliku, czy pobranie pola TEXT i wykonanie funkcji unserialize()?
pyro
29.03.2013, 17:36:10
Jedno i drugie ma swoje zalety i wady. Z reguły konfigurować lepiej w plikach, ale jeżeli dane mają być przykładowo zmieniane gdzieś w panelu administratora itp. to lepiej w bazie danych (ale nie ładować wszystkiego w jeden wiersz, tylko jedna dana = jeden wiersz, bez unserialize())
adrix88
29.03.2013, 17:59:08
Zrobiłem właśnie mały test. W pętli for powtarzającej 1000 razy dane akcje. Oto czasy:
WYNIK (TEXT+unserialize()) 1: 0.108429 ms
WYNIK (include) 2: 0.072376 ms
Jednostkowe wywołania też dają podobny stosunek, więc chyba jednak lepszym rozwiązaniem będzie baza, bo różnice są raczej porównywalne. Jak myślicie?
acidm
29.03.2013, 18:36:59
Ale jesli bedziesz cache-ował pozostałe zapytania, to wtedy co? Będziesz specjalnie łączył się z bazą żeby dostać się do konfiguracji?
adrix88
30.03.2013, 12:43:21
Hmm, tylko że w tej aplikacji raczej nie opłaca się robić cachowania zapytań, bo dane w bazie praktycznie cały czas się zmieniają. Nie jest to zwykła strona do wyświetlania treści, tylko aplikacja zarządzająca serwerami.
Rozwiązałem to na zasadzie pola text i serialize. Można zamknąć.
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.