这可能是一个非常愚蠢的问题,但为数据库表中的布尔字段编制索引会有很多好处吗?
考虑到一种常见的情况,例如标记为非活动的"软删除"记录,因此大多数查询都包含WHERE deleted = 0
条记录,单独索引该字段会有帮助吗,还是应该将其与其他常用搜索字段组合在一个不同的索引中?
这可能是一个非常愚蠢的问题,但为数据库表中的布尔字段编制索引会有很多好处吗?
考虑到一种常见的情况,例如标记为非活动的"软删除"记录,因此大多数查询都包含WHERE deleted = 0
条记录,单独索引该字段会有帮助吗,还是应该将其与其他常用搜索字段组合在一个不同的索引中?
不
您可以对搜索到的字段进行索引,这些字段具有很高的 Select 性/基数.几乎在任何表中,布尔字段的基数都会被删除.如果有什么问题的话,它会让你的书写速度变慢(非常小的一部分).
如果每个查询都考虑了软删除,那么可能会将其作为聚集索引中的第一个字段?