【发布时间】:2010-07-15 00:14:31
【问题描述】:
我们目前正在尝试解决性能问题。搜索数据并以分页方式呈现数据大约需要 2-3 分钟。
经过进一步调查(并经过多次 sql 调整),搜索似乎很慢,只是因为数据量太大。
我目前正在研究的一种可能的解决方案是将数据复制到可搜索的缓存中。现在这个缓存可以在数据库中(即物化视图),也可以在数据库之外(nosql 方法)。但是,由于我希望缓存能够水平扩展,因此我倾向于将其缓存在数据库之外。
我已经创建了一个概念证明,实际上,在我的缓存中搜索比在数据库中搜索要快。但是,初始完整复制需要很长时间才能完成。尽管完全复制只会发生一次,然后后续复制将相对于自上次复制以来更改的那些进行增量复制,但如果我可以加快初始完全复制的速度仍然会很棒。
但是,在完全复制期间,除了查询执行缓慢之外,我还必须与网络延迟作斗争。事实上,我可以处理缓慢的查询执行时间。但是网络延迟确实会减慢复制速度。
这引出了我的问题,如何加快复制速度?我应该产生几个线程,每个线程都做一个查询吗?我应该使用可滚动的吗?
【问题讨论】:
-
这是实时数据,还是事后报告?您可能想尝试看看 nosql 解决方案是否适用于此特定查询
-
是的。我将在 nosql 存储中复制我们的 RDBM(或者它的一些表)。
标签: java database performance replication