Използването може да използва частични индекси, за да заобиколи факта, че "&" не е индексируем оператор (afaik):
CREATE INDEX vendors_typeA ON vendors(id) WHERE (type & 2) > 0;
CREATE INDEX vendors_typeB ON vendors(id) WHERE (type & 4) > 0;
Разбира се, ще трябва да добавяте нов индекс всеки път, когато добавяте нов тип. Което е една от причините за разширяване на данните в асоциативна таблица, която след това може да бъде индексирана правилно. Винаги можете да напишете тригери, за да поддържате допълнително таблица с битова маска, но използвайте таблицата много към много, за да поддържате действително данните нормално, тъй като ще бъде много по-ясно.
Ако цялата ви оценка на мащабирането и производителността е да кажете „може да имам милиони редове“, не сте направили достатъчно, за да започнете да се стремите към този вид оптимизация. Първо създайте правилно структуриран ясен модел, оптимизирайте го по-късно въз основа на реални статистически данни за това как се представя.