Amo*_*kar 5 java struts caching hibernate in-memory-database
我有一个包含200个表格的应用程序-分为4组
非事务性(50个表)-诸如部门,名称等表,这些表有时会由管理员进行一次更新(100000次读取:1个写入比率和1个写入/月)
更少的事务性(50个表)-诸如设置,产品,税率之类的表,它们被读取得更多并且被插入的频率很少,但是每天都会发生写入(1000次读取:1个写入比率和1个写入/天)
事务性(50张表)-诸如订单,收据等表格,它们几乎相等地被写入和读取(10次读取:1次写入和1次写入/小时)
重型事务处理(50个表)-诸如任务,历史记录之类的表,它们被写入和读取较少,但被服务和报告使用(1次读取:1次写入和1次写入/分钟)
我正在使用hibernate,struts2和spring,并在寻找缓存策略以获得最佳性能和效率。
如果您观察到我在读写最多的表中有更多数据,那么将它们缓存在更关键的位置。
我可以缓存第4组表吗?如果是,怎么办?
我可以缓存第3组表吗?如果是,怎么办?
我可以缓存第2组表吗?如果是,怎么办?
我可以缓存第1组表吗?如果是,怎么办?
我可以在内存数据库中使用某些表吗?
在某些情况下,视图对我有帮助吗?什么情况
好吧,我最后想要的是从内存数据库中进行快速读取访问,这会随着数据库的更改而更新我的内存数据库。就像说我有产品列表,订单列表在内存中一样,但是当添加任何新产品或订单时,此列表必须重新加载。通常,所有读取都从某个内存数据库中进行,而所有写入均通过触发器触发直接db来更新列表或列表项。
让我们从缓存的经验法则开始,
\n缓存经常读取且很少更改的非事务性数据。
\nHibernate 可以让您非常安全地到达那里。从这一点来看,即使您仍然可以使用缓存,但并不真正推荐,因为您可能会遇到多个问题。因此,最好谨慎行事。看看下面的文章列表,它会给你更多的见解。
\n\n因此,当我们将此规则应用于您的场景时,只有第一组应该被缓存。首先,测量您的应用程序的性能改进情况。如果一切正常,您也可以考虑缓存第二组。不建议缓存事务表,因此排除第 3 组和第 4 组。
\n| 归档时间: |
|
| 查看次数: |
1210 次 |
| 最近记录: |