关于大数据量的排序?
比如一个硬盘上有5000万个文件,怎么对这些文件进行排序!!!如优酷网是怎么做视频排序的,望高人指点!!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
比如一个硬盘上有5000万个文件,怎么对这些文件进行排序!!!如优酷网是怎么做视频排序的,望高人指点!!!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(13)
把所有需要排序的文件的需要用到的信息写入数据库,在需要排序的字段上使用聚集索引。
不知sqlite行不行,反正mssql是可以滴。
不必重复造轮子,数据库已经为这些作了大量工作了。
真心只需要直接放入数据库或者nosql里面,这里面的开销主要是存入,而不是计算,mongdoDB来对5000W个数据排序,我猜不会超过10秒。。。
5000w个文件,把元数据存入内存还是没问题的吧?直接可以排了呗。否则外排序也有很多算法的。
只要能排就行?比如按类别,类别当中按名称。。。。。
我的第二句就是解决办法
怎么个文件排序?按名称?按大小?按时间?
最好的版本,文件信息在数据库中保存,包括:文件名、创建时间、大小、类型以及存放路径
然后直接对数据库进行排序,这个没什么压力吧
请问,你有例子吗?
拆分小块,并行排序,然后归总,来达到高效排序。
假如5000W文件都在一个机器上呢?
5000W个文件,用1000个服务器存储,然后并行计算排序,然后归总。
hadoop,你可以google/baidu下。
使用这个是假设你有这么多服务器,不过你可以参考里面的思想,分小块,并行排序,然后归总,来达到高效排序。
什么意思??
hadoop
hadoop