14-151- 腾讯-100亿个qq号,要找到其中的一个qq号,你怎么用C++处理这个问题

作者: 十二岁的闰土分类: 计算机技术 发布时间: 2024-03-19 22:47:07 浏览:12168 次

14-151- 腾讯-100亿个qq号,要找到其中的一个qq号,你怎么用C++处理这个问题

震惊惊惊惊惊惊惊:
看了网上方案是集群%100,这样确实可以,但是存在扩容缩容难,所以既然是集群了一致性hash,%2^32-1,再向前找就找到了...再聊聊堆表,更快检索[doge]

【回复】嗯嗯 聊到集群有可以讲负载,我们前面有负载均衡策略分析
一夕风云:
使用快速排序中的partition,不停的对数据去二分,可以在lg(n)时间内找到

【回复】这个数据量一般要考虑爆内存的
【回复】一个32位存不下,得64位,就是8字节,10^10*8 B =80G内存
夕舞八弦:
up说问可不可以预处理 我才反应过来 这b问题如果只看字面意思 其实是个I/O Bound的问题啊 我代码写出花来也得等磁盘一点一点读那*一个*txt[辣眼睛]

【回复】mmap,直接影射,最近java搞了个比赛,十亿数据整理,时间压缩到一秒[吃瓜]
【回复】请问一下这个比赛叫什么?想搜来学习学习
【回复】回复 @三而帝 :哈哈,是的,1BRC吧,有些点确实很亮
梵蒂冈最后的钟鸣:
可以参考mapreduce做法。或者根据内存分成多个文件块,单个块排序后,通过多路归并进行外部排序,分成若干个桶。通过二分进行查找

元初c:
我有看到一个大数据的解决方案: 1.一部分一部分的读出来 2.通过hash映射存储到文件中,比如 qq号%10000,用10000个文件存储下来 3.把想查找的qq号%10000,然后找到对应的映射文件,从中查找到想要的数据

【回复】这个%10000也可以是其他值,看需求
bilibili卡哇伊:
这么多 qq 号肯定按号段存储的吧,不可能存一起吧

Mr叶落:
类似分库分表的思路,qq号是纯数字,可以1亿1亿的分到一个文件里面,这样就能知道在那个文件里面去找了,大幅度提高速度

RustCargoTokio:
qq号首先就不该考虑bitmap,一秒钟都不该往那想,那不是连续的,大数也多。

路人abcsef:
[doge]现实是不会有这么离谱的需求和场景。连屠龙术都算不上应该算屠神术

【回复】回复 @云苍戮 :关键是正常qq肯定是用数据库啊,怎么会纯C++呢
【回复】回复 @一般通过伊蕾娜 :那面试的时候总不能说我拒绝回答,因为我会用数据库吧[doge]

腾讯 计算机 QQ 编程 线上 top 面试题 字节 bitset

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!