我的 tinyint 字段有 6 个可能的选项,并且对于每次搜索,用户选择哪些选项是可以接受的。目前,我将每个选项简单地存储为值 0 到 6,并在 WHERE 中为每个可接受的选项执行单独的子句。示例(用户选择的选项 0、3 和 4):
SELECT * FROM table WHERE type = 0 OR type = 3 OR type = 4
我想知道如果将数据存储为 1、2、4、8、16 和 32 是否会更快,并且我执行了按位搜索。
SELECT * FROM table WHERE type & 25
我相信第一个选项通常能够被索引然后更快,但是这个表实际上是43个字段,其中33个是可搜索的,包括各种操作。(查询完成时通常有很多AND。)我不仅需要索引很多字段,而且这不会否定索引的优势吗?