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

Ефективност на базата данни:филтриране по колона срещу отделна таблица

Това е често срещан проблем при проектирането на бази данни:Въпросът дали да се отделят или „архивират“ записи, които вече не са „активни“.

Най-често срещаните подходи са:

  • Всичко в една таблица, маркирайте поръчките като „завършени“, според случая. Плюсове:Най-простото решение (както по отношение на кода, така и по отношение на структурата), добра гъвкавост (напр. лесни за „възкресяване“ поръчки). Минуси:Таблиците могат да станат доста големи, проблем както за заявки, така и за напр. резервни копия.
  • Архивирайте стари неща в отделна таблица. Решава проблемите от първия подход, с цената на по-голяма сложност.
  • Използване на таблица с разделяне на базата на стойности. Това означава, че логично (за приложението) всичко е в една таблица, но зад кулисите СУБД поставя неща в отделни области в зависимост от стойността(ите) на някои колони. Вероятно бихте използвали колоната „завършено“ или „датата на завършване на поръчката“ за разделянето.

Последният подход донякъде съчетава добрите части на първите два, но се нуждае от поддръжка в СУБД и е по-сложен за настройка.

Забележка:

Таблиците, които съхраняват само „архивирани“ данни, обикновено се наричат ​​„архивни таблици“. Някои СУБД дори предоставят специални машини за съхранение за тези таблици (напр. MySQL), които са оптимизирани да позволяват бързо извличане и добра ефективност на съхранението, с цената на бавни промени/вмъквания.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. СЪЗДАВАНЕ НА БАЗА ДАННИ в транзакцията

  2. Как да вмъкна в таблица от друга таблица чрез съпоставяне на стойности?

  3. Postgres за извличане на списъка със стойности, разделени със запетая

  4. Как Tanh() работи в PostgreSQL

  5. Заявка към PostgreSQL с Npgsql и Entity Framework, използвайки неакцент