我有一个从 SQLite 数据库中提取数据的 Java servlet(在 Tomcat 中运行)。我正在使用 Xerial 驱动程序从我的 servlet 访问 SQLite 数据库。
当移动应用程序请求信息时,此 servlet 会提取数据。
该数据库仅用作只读(每天生成一次),但它包含大量数据(主表包含 200 000 行,而我还有另一个超过 10 000 000 行的表)。我为经常使用的列创建了索引。
我需要建议来优化 SQLite 数据库的使用,以提高服务器的响应能力。
对于每个请求,我都会创建一个新的数据库连接,然后发送 SQL 选择、提取数据并关闭连接。这是一个好的策略吗?我可以有许多并行运行的请求。我应该使用连接池吗?如何?
我的 SQLite 数据库文件大约 2Gb,在我的服务器上我有很多内存(16Gb)。由于它是一个只读数据库,我可以将其加载到内存中或增加缓存。什么是最好的策略以及如何去做?