对SQLite性能的主要影响

Mah*_*dsi 5 sqlite indexing performance primary-key

我有一个sqlite数据库,用于存储有关备份作业的信息。每次运行时,由于向特定表中添加了约32,000个条目,因此增加了约25mb。

该表是一个“映射表”,用于将某些信息链接到另一个表中的记录...并且它具有我不使用的主键(autoincrement int)。

sqlite将根据其值为INT列保留1、2、4或8个字节。该表仅具有3个附加列,也是INT类型。

我已经在查询中用作过滤器(WHERE)的列上向数据库添加了索引。

在存在索引等的情况下以及在上述情况下,主键在性能方面是否具有任何有用的好处?

注意:性能对该项目非常重要-但是,如果在32,000个输入作业中保存10ms意味着额外的10MB数据,则不是!

Thi*_*ilo 4

主键索引用于查找给定主键的行。它还用于确保主键值是唯一的。

如果您使用其他列搜索数据,则不会使用主键索引,因此不会产生任何性能优势。不过,它的存在也不应该对性能产生负面影响。

不必要的索引会浪费磁盘空间,并使 INSERT 和 UPDATE 语句执行速度变慢。它应该不会对查询性能产生负面影响。