PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jakie są zalety i wady wykonywania obliczeń w sql vs. w Twojej aplikacji?

Zależy to od wielu czynników - ale co najważniejsze:

  • złożoność obliczeń (najlepiej wykonywać złożone obliczenia na serwerze aplikacji, ponieważ skaluje się to na zewnątrz; zamiast serwera bazy danych, który skaluje się w górę )
  • wielkość danych (jeśli potrzebujesz dostępu/agregacji dużej ilości danych, zrobienie tego na serwerze bazy danych pozwoli zaoszczędzić przepustowość i dysk we/wy, jeśli agregację można wykonać wewnątrz indeksów)
  • wygoda (sql nie jest najlepszym językiem do złożonej pracy - szczególnie nie jest dobry do pracy proceduralnej, ale bardzo dobry do pracy opartej na zbiorach; jednak kiepska obsługa błędów)

Jak zawsze, jeśli robisz przenieś dane z powrotem do serwera aplikacji, minimalizacja kolumn i wierszy będzie na twoją korzyść. Upewnienie się, że zapytanie jest dostrojone i odpowiednio zindeksowane, pomoże w obu scenariuszach.

Przypomnij swoją notatkę:

a następnie przejdź przez rekordy

Pętla przez rekordy jest prawie zawsze złą rzeczą do zrobienia w sql - preferowane jest pisanie operacji opartej na zbiorach.

Co do zasady , wolę ograniczyć zadanie bazy danych do minimum „przechowuj te dane, pobierz te dane” – jednak zawsze są przykłady scenariuszy, w których eleganckie zapytanie na serwerze może zaoszczędzić dużo przepustowości.

Zastanów się również:jeśli jest to kosztowne obliczeniowo, czy można je gdzieś zapisać w pamięci podręcznej?

Jeśli chcesz dokładnego „co jest lepsze”; zakoduj go w obie strony i porównaj (zauważ, że pierwszy szkic jednego z nich prawdopodobnie nie jest w 100% dostrojony). Ale weź pod uwagę typowe użycie:jeśli w rzeczywistości jest on wywoływany 5 razy (oddzielnie) jednocześnie, zasymuluj to:nie porównuj tylko jednego „1 z tych z 1 z tamtych”.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przywrócić plik kopii zapasowej postgres za pomocą wiersza poleceń?

  2. Jak klastrować Odoo 12 za pomocą replikacji strumieniowej PostgreSQL w celu zapewnienia wysokiej dostępności?

  3. Zainstaluj pdo dla postgres Ubuntu

  4. Pobieranie nazwy bieżącej funkcji wewnątrz funkcji za pomocą plpgsql

  5. Jak uzyskać pierwszy wiersz na grupę w PostgreSQL?