sql >> Databasteknik >  >> RDS >> PostgreSQL

Bitvis verksamhet i Postgres

Användning kan använda partiella index för att komma runt det faktum att "&" inte är en indexerbar operator (afaik):

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

Naturligtvis måste du lägga till ett nytt index varje gång du lägger till en ny typ. Vilket är en av anledningarna till att utöka datan till en associationstabell som sedan kan indexeras ordentligt. Du kan alltid skriva utlösare för att bibehålla en bitmasktabell ytterligare, men använd många-till-många-tabellen för att faktiskt underhålla data normalt, eftersom det blir mycket tydligare.

Om hela din utvärdering av skalning och prestanda är att säga "Jag kan ha miljontals rader", har du inte gjort tillräckligt för att börja gå på den här typen av optimering. Skapa först en korrekt strukturerad tydlig modell, optimera den senare på grundval av riktig statistik om hur den presterar.




  1. SQL SERVER – Trick – Köra SSMS med olika Windows-konton

  2. Hur skapar man MySQL-fråga för att hitta relaterade inlägg från flera tabeller?

  3. Fråga efter inlägg och taggar i samma fråga

  4. Lösning för att hitta dubbletter av register som involverar STI och förälder-barn-relationer