从在线讨论组和博客中,我看到很多面试问题与处理大型数据集有关。我想知道有没有系统的方法来分析这类问题?或者更具体地说,是否有可用于处理此问题的数据结构或算法?任何建议都非常感谢。
答案 0 :(得分:8)
“大规模”数据集分为我见过的几个类别,每个类别都有不同的挑战供您考虑。
通常与大规模数据集相关的其他问题,但与本身相关的尺寸相关问题不是:
答案 1 :(得分:1)
没有任何单一的数据结构或算法可以“处理”任何性质的大型数据集,无论出于何种可能的目的 - 还有大量此类体系结构,数据结构和算法的集合,数据类型和所需的“处理”(在单任务,SMP和分布式环境中 - 在许多情况下它们可能需要非常不同的方法)。
答案 2 :(得分:1)
没有银弹。需要更多的上下文信息来理解哪些算法和数据结构对于给定的大规模目的是有用的。对于太大而无法容纳在内存中的数据,例如,许多数据库管理系统使用B +树。
答案 3 :(得分:0)
当人们描述 Large 数据集时,它们通常意味着整个数据集无法存储在内存中。这会给要加载的数据以及何时加载和卸载数据带来挑战。
一种方法是使用顺序数据文件并从头到尾处理。当处理的性质是连续的时,这是有效的,但是当处理需要组合来自数据集的各个部分的数据时,这种方法不能很好地工作。
另一种方法是某种索引文件,在需要时检索必要的数据位。
这方面的一个特殊之处是使用内存映射文件,让内存管理器处理数据的加载和缓存。
DBMS可以极大地简化数据访问,但会增加一些系统开销。