快速选择以下记录块

时间:2013-07-21 14:03:44

标签: mysql sql specifications

是否存在SQL数据库的实现,允许从表中选择n个以下记录的块 - 就索引而言 - 从指定的索引开始,具有性能O(n + log tables_size)?但也允许在O(log tables_size)中添加记录。如果是的话,该怎么做?

我可能是一个梦想家但是,有可能使用MySQL吗?

1 个答案:

答案 0 :(得分:1)

如果id是表上的主键,则以下内容将按照获取记录所需的时间以及初始索引搜索的顺序返回:

select t.*
from t
where id >= SOMEID
order by id
limit <n>;

添加记录包含两部分。第一部分是找到可用空间,第二部分是插入索引。对于插入,b树索引应该需要O(log table_size)。如果页面已满并且您只是在表格的末尾插入,那么找到正确的页面是恒定的时间。

换句话说,如果我正确理解您的问题,主键聚簇索引就会完全符合您的要求。