【发布时间】:2014-09-05 21:05:16
【问题描述】:
我有 2 亿条记录,其中一些具有可变大小的字段(字符串、可变长度数组等)。我需要对它们执行一些过滤器、聚合等(面向分析的查询)。
我只想将它们全部放在内存中(足以放入一个大盒子),然后对它们进行线性扫描。我可以采用两种方法,我想听听您对哪种方法更好的意见,以最大限度地提高速度:
- 使用带有
char*和int*等结构的数组来处理可变长度字段 - 使用大字节数组,像二进制流一样扫描字节数组,然后解析记录
您会推荐哪种方法?
更新:使用 C。
【问题讨论】:
-
我建议你先选择一种语言。
-
@crashmstr:刚刚更新了我的问题 - 使用 c/c++
-
@jeffreyveon c 和 C++ 是两种不同的语言,哪一种?
-
C/C++ 不是一种语言。现代 C 和现代 C++ 自首次创建以来都发生了变化和分歧,并且惯用(“本机”)解决方案可能非常不同。
-
很公平。我想我并没有使用太多现代 C++,所以出于所有实际目的,它是 C。