<分区>
如果所有数据都放入内存,这意味着媒体速度要快得多,那么执行“SELECT .. WHERE ..”查询(过滤数据)的最快方法是什么?到目前为止,我想到的选项:
1) b树类算法,但可能仍然需要索引和更大的空间
2) 定长数组,尺寸较小但可能较慢。
如果速度和大小都是问题,那么还有其他更好的方法吗
<分区>
如果所有数据都放入内存,这意味着媒体速度要快得多,那么执行“SELECT .. WHERE ..”查询(过滤数据)的最快方法是什么?到目前为止,我想到的选项:
1) b树类算法,但可能仍然需要索引和更大的空间
2) 定长数组,尺寸较小但可能较慢。
如果速度和大小都是问题,那么还有其他更好的方法吗
最佳答案
这取决于您的具体情况 - 您需要快速执行哪些操作、确切大小是多少等等。一些例子:
AND
查询,通常会维护一组排序列表(每个功能都有一个列表)。此数据结构称为 inverted index 和
经常被搜索引擎用来从
给定的查询。 (例如,Apache Lucene 使用此数据结构)。底线:如果您打算做一些定制的事情来增强默认库的性能,您应该在设计您选择的数据结构之前考虑具体的问题细节。
关于c - 如果所有数据都放入内存,那么执行 "SELECT ...WHERE ..."操作的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12779192/