Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用sqlite3优化重复搜索_Python_Performance_Search_Sqlite - Fatal编程技术网

Python 使用sqlite3优化重复搜索

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

我在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
搜索之后,它确实在爬行


当程序在查询词中循环时,我让数据库保持打开状态-这是一个错误吗?还是有其他原因导致速度变慢?

我相信sqlite3会在处理过程中将所有数据存储在内存中。数据越多,处理时间越长,占用的内存就越多。尝试改用MySql或Posgres。编辑:查看SqlAlchemy,它是一个非常强大、非常酷的sql操作模块。要优化每个查询,您需要在列上创建一个COLLATE NOCASE索引。但是,速度不应随时间变化。随着时间的推移,内存使用是否会增加?@Busterdust-如果是这样,是否有办法在规定的时间间隔内清除内存?@CL-谢谢!你又一次帮了大忙。虽然我对这个主题的理解还很初级(这是很亲切的),但我看到我有很多阅读要做!