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

Postgresql JSONB идва. Какво да използвам сега? Hstore? JSON? EAV?

Зависи. Ако очаквате да имате много потребители, много голям обем на транзакция или безумен брой извличания на атрибути на заявка, бих казал, че използвате HSTORE. Ако обаче приложението ви ще започне малко и ще се разраства с течение на времето, или имате сравнително малко транзакции, които извличат атрибути, или просто извличате няколко на заявка, тогава използвайте JSON. Дори в последния случай, ако не извличате много атрибути, но проверявате често един или два ключа в WHERE клауза на вашите заявки, можете да създадете функционален индекс, за да ускорите нещата:

CREATE INDEX idx_foo_somekey ON foo((bar ->> 'somekey'));

Сега, когато имате WHERE bar ->> somekey , трябва да използва индекса.

И разбира се, ще бъде по-лесно да използвате вложени данни и да надстроите до jsonb, когато стане достъпен за вас.

Така че бих склонил към JSON, освен ако не сте сигурни, че ще ритнете задника на сървъра си с интензивно използване на извличане на ключове, преди да имате шанс да надстроите до 9.4. Но за да сте сигурни в това, бих казал, направете сравнителен анализ с очакваните обеми на заявките сега и вижте какво работи най-добре за вас.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL, брой редове между мин. и макс. дати

  2. Компилиране на разширение pg_repack в двоичен формат на инсталацията на PostgreSQL

  3. Postgres няма да приеме псевдоним на таблица преди името на колоната

  4. Django - postgres:Как да създадете индекс на JsonB поле

  5. MIN() Функция в PostgreSQL