我有一个python程序,它下载了一个超过1亿个唯一值的文本文件,并遵循以下逻辑:
如果该值已存在于表中,请更新条目的 last_seen
日期( SELECT id WHERE <col> = <value>;
)
如果表中不存在该值,请将该值插入表中
我对需要添加的条目进行排队,然后在收集了几百个条目之后将它们插入到一个bulk语句中。
目前,该程序需要24小时才能运行。我在存储值的列上创建了一个索引。
我目前正在使用mysqldb。
检查值是否存在似乎占据了运行时的大部分份额。我可以通过什么途径加快速度?
谢谢您。
1条答案
按热度按时间4ngedf3f1#
您可以尝试将这些值加载到一个集合中,这样就可以进行查找,而无需每次都从数据库中提取数据。假设表没有被其他人更新,并且您有足够的内存。