一个进程的一个脚本列表。脚本可以随时使用新的url列表调用。我想避免处理在过去任何时候已经被处理过的URL。在
在这一点上,我只想匹配url,它是非常长的字符串,与之前处理过的所有url进行比较,以确保唯一性。在
我的问题是,一个SQL查询将一个文本URL与一个只有URL的MySQL数据库(比如40000个长文本URL)进行匹配,与我的另一个想法(比如使用Python的shelve模块)对URL进行哈希并保存哈希值的想法相比,如何呢?在
shelf[hash(url)] = 1
shelve可以用于一个有40000个字符串键的字典吗?用40000个带二进制值的数字键怎么办?对于这个简单的需求,有没有选择shelve而不是MySQL?在
或者,如果我使用数据库,那么在MySQL数据库中存储URL散列而不是字符串URL有很大的好处吗?在
散列是个好主意。为了在数据库中搜索字符串,它们使用索引。由于可以在字符串上定义比较操作,因此可以构建一个索引,即搜索树,并以对数复杂度处理每个查询
将URL存储在一个集合中,这样可以确保O(1)查找项目,并将其搁置。在这个数量的URL中,存储和恢复所需的时间和内存非常少:
这种方法非常快速:
^{pr2}$对于大量数据,使用搁置通常是个坏主意。数据库更适合你有大量的数据。在
选项包括:
相关问题 更多 >
编程相关推荐