假设有一个表 T,其列 C 由 B 树索引,并且给定常数 k。假设以下查询的结果为 n:
select count(*) from T where C > k;
我在 MySQL(InnoDB) 中尝试过这样的查询,C 列由 B-tree 索引,并意识到 n 的值越大,查询越慢。在一张大桌子(GB)上,我什至不得不等待几分钟。因此,我推测时间复杂度与 n 成线性关系。但我知道是否有人在 B-Tree 内部节点上存储聚合信息,这些信息可以在相对于表大小的对数时间内完成。
任何人都可以建议任何实施对数解决方案的 DBMS,或者任何减少 MySQL 查询时间的技巧吗?