У меня есть много доменных объектов (хранящихся в mysql), которые выполняют множество различных операций. Каждая операция выполняется из отдельной программы. Мне нужно сохранить состояние (потока) для этих сущностей, которые я реализовал в виде длинного поля 'flowstate', используемого в качестве набора битов.
чтобы запросить mysql для объектов, которые подверглись определенной операции, я делаю что-то вроде:
select * from entities where state >> 7 & 1 = 1
Индикация бита 7 (соответствующего операции 7) выполнена. (‹-- упрощенно)
Во всяком случае, вначале я действительно не обращал внимания на влияние этой настройки на производительность, и я думаю, что у меня есть небольшие проблемы, поскольку запросы, подобные приведенным выше, выполняются довольно медленно.
Что я хотел бы знать: помогает ли вообще индекс mysql для «flowstate»? В конце концов, это не единственное значение, которое Mysql может быстро найти, используя двоичную сортировку или что-то еще.
Если это не так, могу ли я сделать что-то еще, чтобы ускорить процесс? . Существуют ли специальные «индексы маски» для полей с вариантами использования, как указано выше?
ТИА, Герт-джан