1

我正在开发一个带有两个 SQLite 数据库的 iPhone 应用程序。我想知道我是否应该只使用一个。

第一个数据库有十几个小表(每个都有四到五个 INTEGER 或 TEXT 列)。大多数表只有几十行,但一张表会有几千行“项目”。这些表都是相关的,因此它们之间有许多连接。

第二个数据库只包含一个表。它有一个 BLOB 列,其中一行与第一个数据库中的一些“项目”(项目的照片)相关。这些 BLOB 仅在程序的一小部分中使用,因此它们很少与第一个数据库连接或连接(无需连接即可轻松获取行)。

第一个数据库文件大小约为 1 MB;带有 BLOB 的数据库会更大——大约 50 兆字节。我将 BLOB 分开是因为我希望能够备份较小的数据库而不必携带 BLOB。我还认为分离 BLOB 可能会提高较小表的性能,但我不确定。

拥有两个数据库(尤其是 SQLite 数据库)来分隔 BLOB 与只有一个数据库和一个包含非常窄的表的表与 BLOB 表混合的优点和缺点是什么?

4

1 回答 1

1

即使是 50 MB,这也是一个非常小的数据库大小,并且您不会看到由于数据库本身的大小而导致的性能差异。

但是,如果您认为性能是问题,请检查您的数据库查询,并确保您没有在不需要该信息的查询中“选择”BLOB 行。从数据库中返回比您需要的更多的行(将其视为从硬盘驱动器读取的数据比您需要的更多)是您更有可能看到性能问题的地方。

除非您对备份的总大小有非常严格的限制,否则我认为将它们分开没有任何优点。它只会在您的应用程序中奇怪的地方增加复杂性。

于 2011-04-23T22:00:04.477 回答