SQLite 2小表vs一大

问题描述 投票:0回答:1

我想优化一个应用程序,有点调度程序。我有不同状态的任务,如完成,待办事项和存档(删除后)。应用程序逻辑最多使用前两种类型,所以我应该将它们保存在同一个表中(并且只选择完成并在每次需要时执行)或者我应该只为存档项目执行复制表以使选择“更容易”因为存档的状态很少使用。

那么sqLite数据库大小是否会以某种方式影响数据库操作?我测试了大表中的select操作(整个db中只有一个),处理100K - 1M行需要很长时间

android sqlite android-sqlite
1个回答
2
投票

SQLite对大表没有问题,而且100万条记录并不是很大。

如果逻辑上有意义,则应该只使用多个表,性能不是问题。所以你唯一的表格看起来像这样:

tasks table
---------------------------
id                    (primary key)
title                 (indexed)
description
status (or status_id) (indexed)

一个经验法则是索引您在查询的where子句中使用的所有列。

如果您在数据库中使用字符串作为status,那么您可以使用另一个表并在tasks表中使用该表的id的外键引用它:

status table
------------
id
name
© www.soinside.com 2019 - 2024. All rights reserved.