【问题标题】:improve SQLite performance with huge database使用庞大的数据库提高 SQLite 性能
【发布时间】:2013-09-12 19:14:10
【问题描述】:

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

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

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

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

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

欢迎任何改进的帮助!

塞巴斯蒂安。

【问题讨论】:

  • 你是如何配置SQLite的页面缓存的?
  • 我目前只使用默认值。

标签: java sql database sqlite query-performance


【解决方案1】:

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

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

【讨论】:

  • 我的应用程序是一个在 Tomcat 中运行在桌面机器上的 servlet(至少有 8GB 的​​ RAM)。当从客户端应用程序(在智能手机/平板电脑上运行)收到请求时,此 servlet 正在提取数据。因此,我可以并行收到许多请求。
猜你喜欢
  • 2011-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-20
  • 1970-01-01
  • 2013-10-31
相关资源
最近更新 更多