、修改、删除)的性能降
低,并且占用更多的空间。
消除大数据表连接
消除表连接的几种解决方案
解决方案
适用场景
示例场景
冗余存储关联字段
订单列表查询时,希望查看到订单的客户名称,原
业务需求上可以接受冗余导致的不一致,或者冗余数据可以很容易被同步更新
本订单上只记录了客户ID,通过关联客户表查询客
户名称
Cache缓存
变动概率不高,但是对于数据一致性要求用户名(USER_NAME)被很多业务所关联查询,但是也不适用于冗余方案(业务上不允许不一致,
较高并且要保持所有冗余存储的地方同步更新很困难)
不是必须包含的被关联表的字段,可以直订单列表中的产品型号等非关键字段,其实并不一
直接删除关联字段
接从列表查询中去除
定要包含在订单列表中
拆分成多次查询
对于单个数据的查询,如果涉及多张关联订单表单中需要查询到关联产品的编码、型号等很
表,有时分多次查询会比一次复杂的关联多字段查询更为合适
应用层性能优化:Cache
其实很难说Cache就是应用层性能的优化策略。因为大部分情况下,Cache所缓存的内容就是数据库中存储的内容。采用Cache策略其实也是对数据库层的一种优化,因为其避免了对于数据库的频繁访问。
MemCached和JBossCache应该是两类比较典型的Cache。
58
f梦想成就未来
java学习笔记
MemCached
JBossCache
特性
1、基于Clie
tServer架构2、只有一份数据Copy,不需要数据同步
基于JGroup多播的分布式Cache
优势不需要数据同步,避免复杂的多播等技术Cache读取基于本地Memory,性能更高
作者:李辉
日志记录
日志记录就是要对用户在系统中的操作行为和操作的数据等进行记录,以便对用户在系统中的操作进行查证,以保证用户行为是不可伪造的、不可销毁的、不可否认的。也就是说,用户在系统中的行为是有据可查的,不能在系统中伪造自己的行为,或者伪造其他用户的行为;同时,用户是不能销毁这些证据的,不能否认自己的行为。
日志记录具体包括两部分:行为日志记录和数据日志记录。
(1)行为日志记录
行为日志记录就是要对用户在系统中所访问的每一个页面,在各页面中所做的每一个行为都记录下来,记录用户的身份和行为的时刻。
例如,租户A的用户A1在2011年7月13日170750访问了XXX系统的重要客户列表页面,做了删除客户信息的操作。
行为日志记录的实现,可以采用面向方法的方案来实现,例如,通过过滤器或拦截器的方式(Spri
g前置装备),来对所有的页面请求行为及页面里的提交行为多进行拦截,然后将其记录在r