I / O受读取限制?方法优化?

时间:2016-10-24 07:36:09

标签: performance io sqlite

在SQLite中,我使用SELECT从一个数据库中读取数据,执行一些修改并将其写入另一个数据库。

查看iotop的输出,进程性能(仅使用一个核心)是I / O绑定的(IO> 80%,CPU <20%)。我在iotop中可以看到的大部分动作都是在“DISK READ”下进行的,并且只是偶尔会出现“DISK WRITE”下的内容。

流程性能是否可能受SELECT /读取事务的约束?基本上我在网上看到的SQLite的所有与性能相关的信息都是INSERT / write。关于阅读数据有什么需要知道和优化的吗?

一个效率低下的查询,即在缺少索引的字段上通过SELECT对IO的影响比在CPU上影响更大吗?

1 个答案:

答案 0 :(得分:0)

问题相当广泛,所以答案也是如此:是的,选择缺少索引的字段会对IO产生强烈影响。

根据您的查询,架构和数据,SQLite可能正在执行全表扫描。

运行explain query plan可以让您更好地了解SQLite在您的特定情况下正在做什么。