几十亿数据,提交一条数据,判断字段内容是否重复。 直接加索引,怕几十亿数据撑不住。
1
ericls 2022-03-08 23:43:40 +08:00 via iPhone
benchmark 了吗?
|
2
BrettD 2022-03-08 23:46:01 +08:00 2
bloom filter
|
3
kera0a 2022-03-08 23:47:19 +08:00 via iPhone 1
布隆过滤器,但会有一点点误判率。
误判率越小占用内存越大,速度非常快 O(1) |
4
wellsc 2022-03-08 23:48:27 +08:00
文本段?分词+倒排索引
|
6
levelworm 2022-03-09 00:16:55 +08:00 via Android
不用全部对比吧,如果是分布式的话。更怕的是技术上不重但是业务上重。
|
7
levelworm 2022-03-09 00:39:12 +08:00 via Android
对了,op 用的是什么数据库呐?
|
8
LeeReamond 2022-03-09 07:07:28 +08:00
@kera0a 布隆过滤器一个问题是无法应对动态数据,实际业务里比如原先拦截 1 ,2 ,3 ,结果第二天业务上 2 从列表里删除了,布隆过滤器就比较吃瘪了
|
9
murmur 2022-03-09 08:16:13 +08:00
几十亿数据有分表或者分库么
|
11
shawndev 2022-03-09 10:22:34 +08:00
Cuckoo Filter?
|
12
ElmerZhang 2022-03-09 10:45:30 +08:00
分表+唯一索引
|
13
ElmerZhang 2022-03-09 10:49:06 +08:00
当前表不好拆的话,就专门为这个索引建个新表,给这个表分表+唯一索引。
写数据的时候用事务,两个表一起写。 另外,你只是担心抗不住,到底抗不抗得住还是要看压测,说不定就抗得住了呢。不过这么大的表改索引也得费点劲。 |
15
ghoul5426 2022-03-10 15:10:38 +08:00
居然没人说哈希,为每个数据计算一个哈希值,crc32 ( 32 位)、md5 ( 128 位)、sha1 ( 160 位)、sha256 ( 256 位)等都可以,可以把哈希值做主键或者唯一索引,可以用这个值来做分库分表的依据。
|