1.合理增加索引
表索引可以加快对表中数据的检索速度,但是会降低表中数据的更新速度,所以增加表的索引一定控制在合理范围内,过多的索引不但不会降低数据库的压力,反而可能增大数据库的压力,表索引的建立一般要从具体业务场景出发,对于读多写少的场景,可以通过适当的增加索引来提高效率,对表的那些列建立索引?建立单独索引还是建立复合索引?要根据具体的业务场景来决定,建立索引之后可以针对索引对业务逻辑中使用的SQL进行优化,建立索引是最基础的手段,这里不错过多的介绍。
2.数据截转
一般情况下,业务中所处理的数据的都具有一定的时间间隔,所以可以通过对业务进行梳理,将当前时间间隔之外的数据进行截转,截转到历史数据库中,通过对业务进行拆分,当需要历史数据时,可以转到历史数据库中进行查询,或者修改,通过减少当前数据库的数据量,来减轻当前业务数据的压力。数据截转一般情况下是按照时间来进行,所以在业务员数据库设计的时候就要考虑到时间这个因素。
数据截转可以进行间隔一段时间做一次手工的数据截转,也可以启动一个定时器,每个一段时间进行一次数据截转,推荐的方式是准实时截转,及每天在业务量较小的时间,启动任务实时截转。
数据截转需要注意的几个问题:(1)外键关联关系(特别是有主键ID的关联的)注意在截转的历史数据库中的关联关系是否正确。(2)保证生产库和历史库的业务关联关系,从而避免历史库的数据需要关联生产库中的数据。
3.增加缓存
缓存是降低数据压力一个强有力的手段,基本是所有系统大型web系统中都会使用