大数据快速查找(C/C++)

jingweiyoung 发布于 2012/10/31 21:31
阅读 2K+
收藏 0

如果有10万个电话号码,用什么结构存储查找起来速度快?Hash?键树?

如果数量级是100万呢?

移动,联通这些电信运营商,他们如果对号码进行查找使用什么方法使得效率更高?

加载中
0
乌龟壳
乌龟壳
一般都用树
jingweiyoung
jingweiyoung
怎么说?为什么一般都用树?
0
Jooooooker
Jooooooker
key value 存储吧
0
回去干活
回去干活
hash,不过一般的业务需求都比较高hash不能满足需求。
0
MPI_COMM_WORLD
MPI_COMM_WORLD
按照时间复杂度来看,还是hash比较好吧
0
Lunar_Lin
Lunar_Lin

最牛的查找就是不查找. 直接定位, 什么数据结构都比不过数组.
      才10万这个数量级 hash就够了. 再大就是分区了. 一看ID 头号尾号 就知道从哪个区里查,排除了一大片区域. 在区再动用 hash查.

jingweiyoung
jingweiyoung
回复 @Lunar_Lin : 恩,受教了,多谢...
Lunar_Lin
Lunar_Lin
回复 @yangjingwei : 时空的矛盾,当然是这样. 10w个1M也才100G. 可以分多台机器存储不同的ID段. 每台机器可以建 最久未使用则逐出的缓存, 降低内存消耗.
jingweiyoung
jingweiyoung
那内存消耗怎么办??不会把所有区域的Hash都加载到内存里吧?
0
出云之月
出云之月

引用来自“Lunar_Lin”的答案

最牛的查找就是不查找. 直接定位, 什么数据结构都比不过数组.
      才10万这个数量级 hash就够了. 再大就是分区了. 一看ID 头号尾号 就知道从哪个区里查,排除了一大片区域. 在区再动用 hash查.

是啊,这个比较实用
返回顶部
顶部