PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Какви са плюсовете и минусите на извършването на изчисления в sql спрямо във вашето приложение

Зависи от много фактори - но най-важното:

  • сложност на изчисленията (предпочитайте да правите сложно хрускане на сървър на приложения, тъй като това се намалява; вместо db сървър, който се мащабира нагоре )
  • обем данни (ако трябва да получите достъп/агрегирате много данни, правенето на това на db сървъра ще спести честотна лента и диск io, ако агрегатите могат да се извършват в индекси)
  • удобство (sql не е най-добрият език за сложна работа - особено не е страхотен за процедурна работа, но е много добър за работа, базирана на набори; отвратителна обработка на грешки обаче)

Както винаги, ако направите върнете данните обратно към сървъра на приложения, като минимизирането на колоните и редовете ще бъде във ваша полза. Уверяването, че заявката е настроена и индексирана по подходящ начин, ще помогне и на двата сценария.

Отново вашата бележка:

и след това прегледайте записите

Приключване чрез записи почти винаги е погрешно нещо в sql - за предпочитане е писането на базирана на набор операция.

Като общо правило , предпочитам да свеждам работата на базата данни до минимум „съхранявайте тези данни, извличайте тези данни“ – обаче винаги има примери за сценарии, при които елегантна заявка към сървъра може да спести много честотна лента.

Също така помислете:ако това е скъпо изчислително, може ли да се кешира някъде?

Ако искате точно "кое е по добре"; кодирайте го и по двата начина и го сравнете (като се отбележи, че първата чернова на нито един от тях вероятно не е 100% настроена). Но вземете предвид типичната употреба:ако в действителност се извиква 5 пъти (отделно) наведнъж, тогава симулирайте това:не сравнявайте само едно „1 от тези срещу 1 от тези“.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SELECT DISTINCT е по-бавен от очакваното в моята таблица в PostgreSQL

  2. Как да създадете потребител с pgAdmin

  3. Синтактична грешка в края на въвеждането в PostgreSQL

  4. psycopg2.OperationalError:ФАТАЛНО:неподдържан интерфейсен протокол 1234.5679:сървърът поддържа от 2.0 до 3.0

  5. Грешка в PostgreSQL:Фатално:потребителското име на ролята не съществува