从 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 和/或许多计算,直到它可以返回下一行。
为了加快速度,您必须改进数据库设计、查询或硬件。