1) 把20亿个整数的大文件用hash函数分成20个小文件(根据hash函数的性质,同一个数不可能被hash到不同的小文件上),再比较这20个小文件各自的第一就能得到最终的结果 2) ... 对于每一个小文件,利用hash表进行遍历,找出重复的url; 或者对小文件中的数据进行排序看看是否出现重复的url 3) Top k问题:1. 把海量的数据分流到不同的机器上;对每一台机器来说;2. 如果分到的数据量还是很大(也就是说内存不够时),这时可再用hash函数把每台机器的分流文件拆分成更小的文件来处理。3. 处理每一个小文件时,可以用大小为k的小顶堆来求每个小文件的top k, 最后继续利用小顶堆/外排选出每台机器的top k, 再...选出最后的不同机器中的top k 4) 1. sql优化 2. 设置索引 3. 加缓存 4. 分库分表
image.png