注意:为了避免缓存穿透,需要对所有缓存定时更新期限,并且将失效时间进行错开,确保不会出现一瞬间所有缓存失效,导致请求全部进入数据库....为了避免内存溢出,需要对所有缓存字段进行管理,做失效时间,定时删除垃圾数据
并发锁相关
在并发下,如果对数据准确度有一定要求的话,将涉及到并发锁功能....在mysql中,myisam引擎虽然插入,查询性能高,但是它作为表锁,如果在大表更新情况下,将造成锁表,导致全服务器请求都将锁住等待,所以myisam不能用于大表更新等业务,只适合做日志记录....可查看: 并发锁
注意:innodb虽然作为行级锁,但是也需要考虑操作表的单位数量,例如用户金额,理论上只有用户自身请求,并发量并不大,就算是锁表,也不会影响到其他用户的操作....如果是不需要获取结果的,例如插入日志,发送邮件,可直接使用队列
数据库主从
为了避免数据库压力过大,可对数据库做主从环境,非主要数据全部从从数据库读取,减少主数据库压力.