我曾尝试找到类似的问题,但没有找到任何问题,除了关于同一列的两个索引的问题(通常)。
让我们假设我们有一个带有列的表COL
。该表(和整个数据库)对于客户端是只读的(让我们假设它每隔很长一段时间更新一次/一次,并且仅由后端服务更新)。因此,插入/更新时间无关紧要。
对于此列,有一些高度使用的查询会搜索COL
值在某个范围内的行,还有一些更常用的查询会搜索COL
与值直接比较的行(相等性检查)。
考虑到上述情况,同时持有 aBTREE
和HASH
index是否有益COL
?优化器会将BTREE
索引用于范围查询,将HASH
索引用于直接比较查询吗?COL
如果是类型,答案会改变varchar(256)
吗?
谢谢!