大数据的解决方案--------批量读取和延迟修改

来源:互联网 发布:推理游戏 知乎 编辑:程序博客网 时间:2024/06/08 19:58

批量读取和延迟修改的原理是通过减少操作的次数来提高效率,如果使用的恰当,效率将会呈数量级提升

1:批量读取

— 批量读取是将多次查询合并到一次中进行,比如,在一个业务系统中需要批量导入工人信息,在导入之前需要检查工人的编码是否已经在数据库中,工人对应的部门信息是否正确(在部门表中是否存在),工人的公工种信息在工种表中是否存在等,如果每保存一条记录都需要一次数据库,那么对每个需要检查的字段,都需要查询和保存的记录条数相同次数的数据库,这时可以先将所有要保存的数据的相应字段读取到一个变量中,然后使用in语句统一查询一次数据库,这样就可以将n(要保存记录次数)次查询变为一次查询了。除了这种对同一个请求中的数据批量读取,在高并发的情况下换可以将多个请求的查询合并到一次进行,如将3s或者5s内的所有请求合并到一起统一查询一次数据库,这样就可以减少查询数据库的次数,这种类型可以用异步请求来处理。

2:延迟修改

— 延迟修改主要针对高并发而且频繁修改(包括新增)的数据,如一些统计数据。这样情况可以先将需要修改的数据暂时保存到缓存中,然后定时将缓存中的数据保存到数据库中,程序在读取数据时可以同时读取数据库中和缓存中的数据。这里的缓存和前面介绍的缓存有本质的区别,前面的缓存在使用过程中,数据库中的数据一直是最完整的,但这里数据库中的数据会有一段时间内不完整。这种方式下如果保存缓存的机器出现问题将可能会丢失数据,所以如果是特别重要的数据就需要做一些特殊的处理。比如所在单位有一个系统需要每月月末分别导入自己厂当月的相应数据,每到月末那个系统就处于基本瘫痪的状态了,而且各厂从整理出数据到导入数据就只有几天时间,系统只有几天的时间,所以有的厂就专门等晚上人少的时候才进行操作,对于这种情况就可以采用延迟修改的策略来解决。

1 0