Python 使用sqlite3优化重复搜索
我在python 2.7.3中使用sqlite3创建和搜索数据库(my_db),如下所示:Python 使用sqlite3优化重复搜索,python,performance,search,sqlite,Python,Performance,Search,Sqlite,我在python 2.7.3中使用sqlite3创建和搜索数据库(my_db),如下所示: c.execute('SELECT COUNT(*) FROM my_db WHERE entry LIKE ?', (t+'%',)) print c.fetchone() 数据库大约有2.44e8条目,将至少搜索1e6次 搜索是成功的,但是我发现一切都变慢了,在大致7e3搜索之后,它确实在爬行 当程序在查询词中循环时,我让数据库保持打开状态-这是一个错误吗?还是有其他原因导致速度变慢?我相信sqli
c.execute('SELECT COUNT(*) FROM my_db WHERE entry LIKE ?', (t+'%',))
print c.fetchone()
数据库大约有2.44e8
条目,将至少搜索1e6次
搜索是成功的,但是我发现一切都变慢了,在大致7e3
搜索之后,它确实在爬行
当程序在查询词中循环时,我让数据库保持打开状态-这是一个错误吗?还是有其他原因导致速度变慢?我相信sqlite3会在处理过程中将所有数据存储在内存中。数据越多,处理时间越长,占用的内存就越多。尝试改用MySql或Posgres。编辑:查看SqlAlchemy,它是一个非常强大、非常酷的sql操作模块。要优化每个查询,您需要在列上创建一个COLLATE NOCASE索引。但是,速度不应随时间变化。随着时间的推移,内存使用是否会增加?@Busterdust-如果是这样,是否有办法在规定的时间间隔内清除内存?@CL-谢谢!你又一次帮了大忙。虽然我对这个主题的理解还很初级(这是很亲切的),但我看到我有很多阅读要做!