大数据查询

122 天前
 BuGoooo

需求:有 10 亿左右的数据需要做查询,想在毫秒内返回匹配结果

存入的内容如下

id cardno name short createtime
1 Dkmy48k7afjsG9T75BtTHOdssqCIyKtt Jack Ma DKyKtt nowtime

数据库存入的是这些数据,但是我匹配的话是通过 short 来匹配的,有什么好用的软件或方法吗?

付费求指导

2384 次点击
所在节点    数据库
47 条回复
cbythe434
122 天前
short 没啥含义直接 kv 查询的? redis ?
threeBoy
122 天前
单表大数据? clickhouse
shuangbiaog
122 天前
10 亿上 ES 吧
BuGoooo
122 天前
@threeBoy 不一定单表,可以多表 可以用 short 的 前后来分一两百个表
BuGoooo
122 天前
@shuangbiaog 可以用分表,10 亿条,es 能干毫秒内吗 铁铁
BuGoooo
122 天前
@cbythe434 short 是要查询的内容,要么查全部 要么查后面四位, 只有这两个查询要求
redis 10 亿级的数据 带不动吧?
COKETSANG
122 天前
是 short like 还是需要怎么查?单列查询感觉 clickhouse 的 prewehre 场景蛮合适的
BuGoooo
122 天前
@COKETSANG like 应该不行吧,因为我的想法是 先查全部,如果不满足就只要后面 4 个
以我举例的为例,先查询 DKyKtt ,如果没查到则查询 yKtt 的数据 给返回
COKETSANG
122 天前
@BuGoooo 你可以用 ck 测下,short 一列,sub_short 后 4 位一列。理论上适合 clickhouse 单列 prewhere 应该很快,但是 ck 的 qps 支持不会特别高,qps 比较高的场景建议你试试看 doris
shuangbiaog
122 天前
@BuGoooo 内存给够,有啥不行的
sunjiayao
122 天前
加一列 short_reversed 存数据 reverse(short), 分别给 short 和 short_reversed 加索引。10 亿数据洒洒水啦
BuGoooo
122 天前
@COKETSANG 不需要 qps 很高,一天可能就最多几千次请求
BuGoooo
122 天前
@shuangbiaog HAHA 是是是 内存够 啥都能干 ,哪像这种 10 亿级的数据,128g 的内存够不
BuGoooo
122 天前
@sunjiayao 用 mysql 吗
RandomJoke
122 天前
你要分表的话,如果能保证均匀分布,100 张表,单表不就 1kw 了,索引直出问题不大了吧。。如果你说 1ms 以内,感觉必须得内存了吧。。
sunjiayao
122 天前
@BuGoooo #14 任意支持 btree 的数据库
BuGoooo
122 天前
@RandomJoke mysql 分表,单表 1kw 的数据,100 张就够了 。但是你的意思是这种情况下最好就是数据能均匀分布到每个表里,如果想提高查询效率,我服务器的内存得拉起来吗
RandomJoke
122 天前
@BuGoooo 数据在硬盘里的话,怎么估计也不能 1ms 以内,你拉高内存加快本质上不就是从内存出。。
BuGoooo
122 天前
@RandomJoke 上云也可以,只要做到响应毫秒级内返回就行

铁铁方便 v X 吗 付费求指导 哈哈
BuGoooo
122 天前
@sunjiayao 我看看 pgsql

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1112693

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX