Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个看起来像这样的查询:
EXPLAIN ANALYZE select count(*) from Table t where t.outcome='SUCCESS'
“结果”列有一个索引。
H2 告诉我它使用索引,但我仍然得到接近全表扫描的结果,因为大多数行都设置了“成功”,并且基数非常低。
有没有办法加快这个速度?顺便说一句,正如文档所说,没有“WHERE”部分的查询非常快。
应该使用 3 个子查询:
select (select count(*) from table) - (select count(*) from table where outcome<'SUCCESS') - (select count(*) from table where outcome>'SUCCESS') as count
这应该很快,因为第一部分是直接查找,另外两个查询应该很快(因为大多数outcome通常是“成功”)。
outcome
如果没有,您能否获取查询计划并将其添加到问题中(解释分析选择...)?