几个月来,我一直在研究一个连接到 twitter 流 API 并寻找字谜的 python 脚本。
来源在github 上。这很简单; 当我收到一条新推文时,我将其剥离为字母字符,并按字母顺序对该字符串进行排序。这用作哈希。
当前哈希存储在 python 集中,因为检查(磁盘上)数据库花费了太长时间。但是:我也没有在哈希键上使用 UNIQUE。
使用 UNIQUE 可以获得多少性能提升?有没有办法在不使用 SELECT 语句的情况下检查包含?理想情况下,我猜散列应该是主键。包含检查当前与获取分离;提取是定期分批执行的,以提高性能。
基本上我需要一个解决方案,让我可以进行大量的包含检查(可能高达 50/s,在可能有 25m 行的数据库上)并定期进行批量提取,但仅此而已。例如,我不需要经常删除。
这对于磁盘上的 sqlite 存储似乎可行吗?A :memory: sqlite 存储?另一个数据库解决方案?如果不使用本机 python 数据结构,我是否无法获得这种性能?如果是这样,我会坚持我目前的总体策略,并花费我的精力来提出一个更有效的哈希系统。