我想优化应用,有点调度程序。我的任务具有不同的状态,例如完成,执行和存档(删除后)。应用程序逻辑最多使用前两种类型,因此我应该将它们保存在同一个表中(并且每次我需要时只选择完成& 来执行)或者我应该为存档的项目做一个复制表,使选择更容易"因为状态已存档很少使用。
sqLite数据库大小是否会以某种方式影响数据库操作?我测试了大表中的select操作(整个db中只有一个),处理100K - 1M行需要很长时间
答案 0 :(得分:2)
SQLite对大表没有问题,而且100万条记录并不是很大。
如果逻辑上有意义,您应该只使用多个表,性能不是问题。所以你唯一的表格看起来像这样:
tasks table
---------------------------
id (primary key)
title (indexed)
description
status (or status_id) (indexed)
根据经验,您可以在查询的where
子句中为您使用的所有列编制索引。
如果您在数据库中使用字符串status
,那么您可以使用另一个表并在tasks
表中使用该表的id
的外键引用它:< / p>
status table
------------
id
name