さまざまな操作を行うドメインエンティティ(mysqlに保存されている)がたくさんあります。各操作は、異なるプログラムから実行されます。ビットセットとして使用される長いフィールド「flowstate」として実装したこれらのエンティティの(flow)-stateを保持する必要があります。
特定の操作を受けたエンティティをmysqlに照会するには、次のようにします。
select * from entities where state >> 7 & 1 = 1
ビット7(操作7に対応)が実行されたことを示します。(<-簡略化)
とにかく、最初はこのセットアップのパフォーマンスへの影響にはあまり注意を払っていませんでした。上記のクエリの実行がかなり遅いため、少し問題があると思います。
私が知りたいこと:「flowstate」のmysqlインデックスはまったく役に立ちますか?結局のところ、Mysqlがバイナリソートなどを使用してすばやく見つけることができる単一の値ではありません。
そうでない場合、物事をスピードアップするために私ができる他のことはありますか?。上記のようなユースケースを持つフィールドに特別な「マスクインデックス」はありますか?
TIA、Geert-jan