千万级数据,如何以最快的速度查找

Bandry 2019-03-26 12:35:51
目前有个项目,情况如下:
现在有200w的字符串,数据加载到内存后,输入一个字符串,找出对应的字符串相关信息
简单举例:
struct {
char * str,
struct test
}
每个字符串是一个这样的结构体,数据量大约有200w,要求输入一个字符串,以最快的速度,找出对应的结构体
要求在0.1毫秒内查找出来 (因为这种查找请求并发在10000以上)
该如何来设计这个数据结构和查找算法了,头疼
...全文
602 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 6 楼 Bandry 的回复:
感谢大家的回复,目前采用了uthash存储,但是总感觉还有更高效的方法能实现,匹配是完全匹配,不用部分匹配
可以分块。 比如按第一个字节的值,分块,可以把千万条级别的数据每块下降1-3个数量级。 根据第一个字节选择块,然后再在块里面查找。这样就会快很多。
Bandry 2019-03-26
  • 打赏
  • 举报
回复
感谢大家的回复,目前采用了uthash存储,但是总感觉还有更高效的方法能实现,匹配是完全匹配,不用部分匹配
636f6c696e 2019-03-26
  • 打赏
  • 举报
回复
建立哈希表呀
AlbertS 2019-03-26
  • 打赏
  • 举报
回复
分组建立索引呗,全都导入内存吗?看看内存够不够吧
  • 打赏
  • 举报
回复
我上面说的太粗了。 其实还需要知道 字符串的匹配方式是什么样的? 比如字符串需要的是完全匹配还是部分匹配? 如果不需要部分匹配,就不用建立索引
  • 打赏
  • 举报
回复
这个要建索引。参考搜索引擎的索引方式。
真相重于对错 2019-03-26
  • 打赏
  • 举报
回复
关键看你用何种数据结构存储 建议使用hashtable,或者BTREE

70,038

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧