SQLite:使用一个文件与多个文件

时间:2014-12-01 08:06:43

标签: python sqlite

我正在使用Python并使用SQLite3处理项目。我不希望使用任何大量的记录(少于我做过的其他一些不会显示任何显着的性能损失的项目)而且我试图决定是否我应该将整个数据库放在一个文件或多个文件中。它是一个分类帐程序,它将在一个DB文件中保存所有供应商的名称,配置信息和用户的所有数据,但我正在考虑为每个分类帐使用不同的DB文件(在使用不同分类帐的情况下)用于不同目的或投资活动)。

我知道,从here开始,我可以在需要的时候在不同文件中的数据库之间进行连接,所以我没有看到任何必须将所有表保存在一个数据库中的原因,但是我也没有看到我需要将它们分成不同文件的原因。

在SQLite中使用一个数据库与使用多个数据库相比如何?使用一个文件或使用多个文件有什么优缺点?是否有令人信服的理由使用一种格式而不是另一种格式?

1 个答案:

答案 0 :(得分:1)

以下几点需要考虑。随意在评论中添加更多内容。

320282:

  1. 您可以将每个数据库文件放在不同的物理驱动器上,并从并行读/写操作中获益,使这些操作稍微快一点。
  2. Disadventages:

    1. 您无法跨数据库创建外键。
    2. 依赖于来自多个数据库的表的视图将要求您始终使用与附加数据库完全相同的名称附加所有数据库(如果内部定义的SELECT语句不正确,查询视图将报告错误,但只有在查询时才编译和验证。
    3. 触发器无法跨数据库运行,因此某些表上的触发器只能查询来自同一数据库的表。
    4. 事务在数据库之间是原子的,但仅当主数据库既不是WAL模式,也不是:memory:数据库时。
    5. 换句话说,你可以实现一些速度提升(假设你有文件驱动器),但你在数据库设计上失去了一些灵活性,并且难以保持一致性。