我正在使用管理大量存储对象的应用程序(每个存储对象存储一堆简单变量)。这些对象通过外部数据库保存,即MySQL和SQlite。
我目前所做的是在启动时将所有对象加载到内存中(需要直接访问,延迟加载不是一个选项,至少目前是这样)。更改对象的值时,它会通过在新线程中调用相应的更新语句自动在数据库中更新自身。
数据库通信使用PreparedStatements
在纯JDBC中处理,连接不是池,一次只有一个活动连接。
如上所述,我对整个过程不满意,因为当需要将多个操作写入数据库时,它往往会很慢,我正在寻找一种方法来改进它。我试图实现一个队列来使用一次处理多个更新的批处理操作,但似乎这只有在每个更新值都有一个分开的队列时才有可能,这似乎是一些开销。 添加连接池可以加速MySQL,但不会改变SQLite方面的任何内容。
在这种情况下,有什么比最好的做法更好吗?可以切换到ORM帮助吗?
答案 0 :(得分:0)
您提到了一些可以解决的问题,以提高性能:
即使只是做前三个也可能让你加速10倍。