Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obliczenia w czasie rzeczywistym, czy przechowywanie danych w bazie?
Forum PHP.pl > Forum > Bazy danych > MySQL
awakening
Co jest ogólnie "lepszym" rozwiązaniem, obciążanie procesora wykonując obliczenia na danych z bazy za każdym razem gdy użytkownik wysyła żądanie, czy przechowywanie już "przeliczonych" wartości w dodatkowej tabeli i aktualizowanie ich w zależności od zmian, które dokona użytkownik.

Na pierwszy rzut oka wydawałoby się, że odciążenie procesora jest dobrym pomysłem, ale z drugiej strony czas odczytu i zapisu zmodyfikowanych danych do bazy może znacząco wpłynąć na czas odpowiedzi serwera. Poza tym utrzymywanie spójności danych może być dużym wyzwaniem, no i rozmiar bazy danych znacznie wzrośnie.

Jedno i drugie rozwiązanie ma swoje plusy i minusy i nie bardzo wiem, na które się zdecydować. Może wdrożyć prostsze, czyli pierwsze i optymalizować dopiero w razie problemów z wydajnością?
sowiq
Po co obliczać kilka/naście/set razy to samo, skoro można obliczyć raz i zapisać wynik?

Poczytaj o cache.
Crozin
Jedyną poprawną odpowiedzią jest: to zależy - nie podałeś żadnych konkretnych informacji, nie oczekuj żadnej konkretnej odpowiedzi.

Cytat
Może wdrożyć prostsze, czyli pierwsze i optymalizować dopiero w razie problemów z wydajnością?
W ogromnej większości przypadków tak właśnie należy zrobić.
awakening
Cytat(sowiq @ 28.08.2014, 16:57:11 ) *
Poczytaj o cache.


Jest to jakieś rozwiązanie. smile.gif
by_ikar
Jeżeli chodzi o spójność danych, to od tego są klucze obce i transakcje. Dodatkowo żeby nie trzymać w aplikacji logiki odpowiadającej za takie aktualizacje, można to przenieść na bazę i użyć wyzwalaczy (triggerów).
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.