![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 12.01.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
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ą? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Po co obliczać kilka/naście/set razy to samo, skoro można obliczyć raz i zapisać wynik?
Poczytaj o cache. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
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ć.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 12.01.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
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).
Ten post edytował by_ikar 28.08.2014, 16:25:47 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 22:35 |