Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Tłumaczenie strony - która metoda lepsza?
Forum PHP.pl > Forum > Przedszkole
qbas-s
zastanawiam się gdzie wydajniej byłoby przechowywać tłumaczenia strony - w pliku php czy w bazie danych?
Podejrzewam, że baza danych mogłaby być mniej wydajna ze względu na dużą ilość generowanych zapytań, jednak czy tych danych na starcie nie można by ładować np do memcache i czy to byłoby bardziej wydajne od przechowywania tłumaczeń w pliku? Dodam, że w niektórych miejscach dane pobierane są asynchronicznie
Sephirus
Nie spotkałem się jeszcze z tłumaczeniami trzymanymi w bazie danych (co nie oznacza, że tak się nie robi) stąd też IMHO nie byłby to najlepszy pomysł jeśli byłoby tego sporo. Normalnie wrzuca się to do plików i na tym bazuje. Załadowanie przez PHP pliku, który ma te tłumaczenia w formie na przykład tablicy PHP (tak by plik nie był dodatkowo przerabiany jeszcze przez skrypt PHP a tylko wczytany) na ogół w zupełności wystarcza wydajnościowo. Nie wiem ile tego możesz mieć i jak dużo kodu jest w serwisie ale nie powinno to (o ile będzie dobrze napisane) widocznie zmniejszać wydajności. Grunt aby nie ładować wszystkiego naraz a starać się dociągać tylko to co potrzebne - ale to zależy od tego jak działa twój system. Co do memcache to jest jakiś pomysł ale szczerze nie wiem czy poprawi to wydajność - wydaje mi się że wręcz pogorszy. Każde odwołanie do memcache to request i trwa on na ogół dłużej od wczytania prostego pliku z tablicą PHP dla tej samej wielkości tablicy (dochodzi serializacja/deserializacjia itd) - ja bym się z tym wstrzymał.

Co sam proponuje? APC - uruchom sobie na serwerze moduł APC i odpowiednio skonfiguruj wówczas wszystkie skrypty PHP będą dodatkowo cache'owane co spowoduje ograniczenie pamięci wykorzystywanej przez skrypt i przyśpieszenie ładowania plików a za tym poprawę wydajności ogólnie. Poprawa zarówno pod kątem ramu jak i czasu.

HTH wink.gif
qbas-s
a znacie jakieś tanie serwery które obsługują APC?
szalek01
W adminie jeśli takiego posiadasz dodaj sobie moduł tłumaczenia w którym będziesz dodawał i edytował tłumaczenia strony. W czasie aktualizacji rektorów w tej bazie twórz sobie plik z tłumaczeniami da frontu (yml, xml, json, txt, co tam byś chciał) . Na frącie wykorzystaj ten plik. Co Ci to daje, możliwość edytowania tłumaczeń w adminie (klient będzie zadowolony) i zwiększysz wydajność bo nie będziesz musiał w kółko odpytywać bazy danych.

tanie serwery != APC
qbas-s
Cytat(szalek01 @ 24.09.2012, 13:14:19 ) *
W adminie jeśli takiego posiadasz dodaj sobie moduł tłumaczenia w którym będziesz dodawał i edytował tłumaczenia strony. W czasie aktualizacji rektorów w tej bazie twórz sobie plik z tłumaczeniami da frontu (yml, xml, json, txt, co tam byś chciał) . Na frącie wykorzystaj ten plik. Co Ci to daje, możliwość edytowania tłumaczeń w adminie (klient będzie zadowolony) i zwiększysz wydajność bo nie będziesz musiał w kółko odpytywać bazy danych.

Dobry pomysł ale to jest projekt który już istnieje i nie jest zarządzany przez klienta tylko przez jego twórców. Przedstawione przez Ciebie rozwiązanie jest raczej kwestią wygody niż wydajności:)
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.