我有一个SQLite数据库,架构非常简单,但在其中一个表中我有超过200 000个对象,第二个我有超过10 000 000个对象。 对于这两个表,我有索引,而且我更频繁地访问第一个表。
这是一个只读数据库,我不需要插入/删除/更改行。
我的应用程序正在使用Java,而我正在使用Xerial jdbc驱动程序来查询数据库。
我的问题是不时(或第一次)我的SQL Select花费大量时间(超过120秒)。接下来,当使用相同的请求时,它会更快(比如3秒!)。
我希望在访问数据库时保证给客户一个恒定的时间。我想第一次很慢,因为索引尚未加载。 有没有办法强制加载? 有没有办法从文件加载完整的数据库并将其保存在内存中(文件大小约为1.5Gb)?
欢迎任何有待改进的帮助!
塞巴斯蒂安。
答案 0 :(得分:0)
生产应用程序需要高性能但需要大量初始化的常见策略是在第一个用户访问应用程序之前初始化该应用程序。
另一种方法是将您的数据库与您的应用程序分开托管。由于您尚未提供有关您的应用程序是Web应用程序,桌面应用程序,手机应用程序还是其他任何内容的任何信息,因此很难提出合理的建议。