1

我有一个 SQLite 数据库,架构非常简单,但在一张表中我有超过 200 000 个对象,第二张表中有超过 10 000 000 个对象。对于这两个表,我有索引,并且我更频繁地访问第一个表。

这是一个只读数据库,我不需要插入/删除/更改行。

我的应用程序正在使用 Java,我正在使用 Xerial jdbc 驱动程序来查询数据库。

我的问题是不时(或第一次)我的 SQL Select 需要很多时间(超过 120 秒)。接下来,当使用相同的请求时,它会更快(比如 3 秒!)。

我想保证我的客户在访问数据库时有固定的时间。我想第一次很慢,因为索引还没有加载。有没有办法强制加载?有没有办法从文件中加载完整的数据库并将其保存在内存中(文件大小约为 1.5Gb)?

欢迎任何改进的帮助!

塞巴斯蒂安。

4

1 回答 1

0

对于需要高性能但需要大量初始化的生产应用程序的常见策略是在第一个用户访问应用程序之前对其进行初始化。

另一种选择是将数据库与应用程序分开托管。由于您没有提供有关您的应用程序是 Web 应用程序、桌面应用程序还是手机应用程序或其他任何信息的任何信息,因此很难提出合理的建议。

于 2013-09-12T19:21:39.647 回答