在Python中优化SQLite表访问效率

在Python中优化SQLite表访问效率,python,sqlite,Python,Sqlite,我的应用程序可以读取数十个大小从1MB到100MB的SQLite数据库,其简单的表结构如下: 创建表字典(id整数主键、主题、定义) 启动时,应用程序读取所有数据库以提取“主题”列数据。对于如上配置的数据库,提取主题数据是一个漫长的过程。看起来整个DB文件的读取只是为了访问相对较小的“主题”列 如果我添加另一个仅包含主题数据的表 创建表字典(id整数主键,主题) 访问速度更快。但是,如果我只使用topics列创建另一个DB文件,访问速度会快得多。我真的不想用两个文件来访问一个数据库 我的问题,,

我的应用程序可以读取数十个大小从1MB到100MB的SQLite数据库,其简单的表结构如下:

创建表字典(id整数主键、主题、定义)

启动时,应用程序读取所有数据库以提取“主题”列数据。对于如上配置的数据库,提取主题数据是一个漫长的过程。看起来整个DB文件的读取只是为了访问相对较小的“主题”列

如果我添加另一个仅包含主题数据的表

创建表字典(id整数主键,主题)

访问速度更快。但是,如果我只使用topics列创建另一个DB文件,访问速度会快得多。我真的不想用两个文件来访问一个数据库

我的问题,, 表创建顺序是否影响访问速度

是否有办法只读取文件中包含查询表/列的部分,从而节省时间和精力

从一个大文件中读取一个小表/列的速度是否可能与从一个小文件中读取一个小表/列的速度一样快?如果是,怎么做


谢谢,

您使用的select语句是什么?如果你在这里放一些代码来说明问题,你会得到更好的答案。只需一个基本语句:cur.execute(“从字典中选择主题”)。关于SQLite的PRAGMA,有一些很好的答案,可以让它运行得更快,只需进行搜索即可。谢谢,我看了一下,但是提到的大多数用于优化的pragma,比如日志模式和同步模式,都处理向数据库的写入。我的应用程序只从中读取数据。你有什么具体的答案吗?在“主题”列上创建一个额外的索引会有帮助吗?