Data structures 表的数据结构

Data structures 表的数据结构,data-structures,relational,Data Structures,Relational,如果我有一个表,每行代表一条记录,并且有几列。我想对任何列进行快速查询和排序。我可以使用什么数据结构 我想节省空间。否则,我可以在每个列上缓存已排序的结果,以便查询和排序。但是,除了表本身,如何消耗更少的空间呢?根据数据的复杂性,您可能正在寻找一种实现。就是一个, 通常以某种形式实现。这本质上是一个数据库编程问题。您将需要索引,每列一个(本答案的其余部分将假设我们讨论的是一个索引;如果您需要,可以想象将所有这些都做几次)。常见的解决方案包括哈希表和搜索树(例如B树),但当然,只包含所有列条目的简

如果我有一个表,每行代表一条记录,并且有几列。我想对任何列进行快速查询和排序。我可以使用什么数据结构


我想节省空间。否则,我可以在每个列上缓存已排序的结果,以便查询和排序。但是,除了表本身,如何消耗更少的空间呢?

根据数据的复杂性,您可能正在寻找一种实现。就是一个,


通常以某种形式实现。

这本质上是一个数据库编程问题。您将需要索引,每列一个(本答案的其余部分将假设我们讨论的是一个索引;如果您需要,可以想象将所有这些都做几次)。常见的解决方案包括哈希表和搜索树(例如B树),但当然,只包含所有列条目的简单解决方案并不是特别节省空间

答案是建立一个稀疏索引:将记录分组,只存储索引中每个块中搜索键最低的记录。除非您遇到病态情况(始终添加非常低的值),否则这将在低空间需求下为您提供良好的性能

为了处理病态情况,您可以研究将记录分组到块中的不同方法,例如,保留一大堆尚未编制索引的记录,并且只要您能够找到一个子集,而该子集在搜索键方面并不全面,就只将一堆记录提交到一个组中(并编制索引)


(这些只是想法。我更多地是数据库的用户,而不是数据库的程序员。试着做一些研究,看看那些知道得比我多的人在实践中做了些什么。)

我怀疑这需要更多的上下文?这是SQL语言吗?程序延长?哪种关系数据库管理系统?JAVAPHP?pythonC#@Ben:比方说在任何编程语言中,比如Java。对,我知道B-tree可以用来保存磁盘访问。但是,如果有
m
列要对其进行排序和查询,那么您是否仍然需要制作
m
辅助索引数组?