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

Побитови операции в Postgres

Използването може да използва частични индекси, за да заобиколи факта, че "&" не е индексируем оператор (afaik):

CREATE INDEX vendors_typeA ON vendors(id) WHERE (type & 2) > 0;
CREATE INDEX vendors_typeB ON vendors(id) WHERE (type & 4) > 0;

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

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




  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. NodeJS/Knex Създаване на Json отговор

  3. Как да инсталирате PostgreSQL 12 на Ubuntu 20.04/18.04/16.04

  4. Плъзгаща се средна въз основа на времеви печати в PostgreSQL

  5. Как да напиша ограничение относно максимален брой редове в postgresql?