ResultSet.next() 在 Java sqlite JDBC 中的不良性能



从 sqlite 数据库检索数据时,ResultSet.next() 时遇到性能问题。我正在使用org.sqlite.JDBC驱动程序。我尝试设置语句/ResultSet.fetchSize(),但这也不起作用。

当我在 WHERE 子句中使用带有字符串参数的 SQL 语句时,该操作持续大约 25 秒(WHERE中带有非字符串参数,它仅持续 4 秒(。

我发现使用某些驱动程序可以在URL中设置send string parameter as unicode = false,这应该可以提高性能。但是,我无法找到如何使用SQLite连接进行设置的方法。

有人可以帮助我解决这个问题吗?

在 SQLite 中,结果行是按需计算的。(SQLite 不是客户端/服务器数据库,因此没有通信开销。

因此,当next()很慢时,这仅意味着您的查询速度很慢,并且数据库必须执行大量 I/O 和/或许多计算,直到它可以返回下一行。

为了加快速度,您必须改进数据库设计、查询或硬件。

最新更新