@noneim

Будет ли быстро работать bitmap index?

Допустим в таблице есть поле unsigned int, в котором зашифрованы 32 бита, каждый из которых означает yes/no (набор некоторых условий, которые могут наступать одновременно).
Соответственно, чтобы выбрать набор значений с определенными фильтрами, выполняется запрос вида:
SELECT * FROM TABLE WHERE (column & 0b0101111) = 0b0101111; // Если нужно полное совпадение
SELECT * FROM TABLE WHERE (column & 0b0101111) <> 0; // Если достаточно хотя бы одного совпадения

В mysql есть только индекс BTREE, в данном запросе он не используется. В postgresql есть BITMAP индекс, и соответственно вопрос - подходит ли BITMAP индекс для такого рода запросов, будет ли он эффективен, и вдруг кто знает, будет ли поддержка такого индекса в mysql/mariadb в будущем?
  • Вопрос задан
  • 493 просмотра
Решения вопроса 1
@miksir
IT
Нет, bitmap индекс - это другое, отношение к битовым операциям не имеет
https://wiki.postgresql.org/wiki/Bitmap_Indexes
Если у вас ограниченное число таких условий, можно построить индексы по выражению (например, индекс по выражению column & 0b0101111).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы