我有一个sqlite数据库用于存储有关备份作业的信息。每次运行,由于将大约32,000个条目添加到特定的表中,它增加了约25mb。主键对SQLite性能的影响
此表是一个“映射表”,用于将某些信息链接到另一个表中的记录......并且它有一个我不使用的主键(autoincrement int)。
sqlite将根据其值保留INT列的1,2,4或8个字节。该表只有3个额外的列,也是INT类型。
我在我的查询中用作过滤器(WHERE)的列上向数据库添加了索引。
在存在索引等情况以及所描述的情况下,主键在性能方面是否有用?
注意:性能对于此项目非常重要 - 但如果在32,000入门级别上保存10ms意味着额外需要10MB数据,则不会这么做!
我主要赞同这一点。重要的想法是将数据库保存在内存中,如果索引太大,那么它可能很重要。 – Unknown 2009-08-06 07:32:39
@未知:对于一个普通的磁盘备份的内存缓存数据库,未使用的索引不应该进入内存,如果他们这样做,很快就会被驱逐。但是,是的,如果你正在构建一个完整的内存数据库而没有后备磁盘存储,这些索引可能会伤害你。 – Thilo 2009-08-06 07:41:05