大数据量查询处理策略 大数据量查询处理是系统架构设计中不可缺少的一个环节,当数据量变得越来越大时,查询设计的好坏直接影响到系统的响应时间和性能。本文将从数据及数据查询的特点分析出发,讨论现有各种解决方案的优缺点及其适用范围,阐述J2EE平台下如何进行查询框架的设计。 一、Value List Handler 模式 Value List Handler 模式是J2EE应用中处理大数据量查询的一种经典解决方案。该模式创建一个ValueListHandler对象来控制查询的执行以及结果集的缓存,它通过DAO(Data Access Object)来执行查询,并将数据库返回的结果集(传输对象Transfer Object的集合)缓存起来,接下来的客户端查询请求将直接从缓存中获得。它的特点主要体现在两点:服务器端缓存数据,每次只返回客户端本次操作所需的数据,通过这两个措施来减少数据库的访问次数以及增加客户端的响应速度,达到最优的查询效果。 二、Value List Handler 模式的局限性 虽然Value List Handler 模式是一种有效的解决方案,但是在实际应用过程中,会发现该模式存在一定的局限性: 1. 缓存的内存消耗问题:由于缓存是以内存来换性能,这对于小数据量会工作得很好,但是如果结果集很大,内存消耗将会非常严重。 2. 缓存的处理时间问题:缓存中处理结果集的时间也会越来越长,比如要循环读取记录集中的数据,然后依次填充每个传输对象,这样处理起来肯定让人不能忍受。 3. 缓存的update问题:使用缓存,实际上就假定了在数据缓存期间,数据库中的数据不会改变,或者这些改变可以不被反映出来。但是,在很多场合下(比如常见的业务系统中)这些数据库中的数据经常会发生变化,而且这些改变需要及时反映给客户端。 三、数据分析 在决定是否应用某种设计模式前,我们需要对被查询数据的特点以及这些数据以何种方式被使用(查询的特点)进行一个分析,根据不同的结论来决定采用何种处理策略。数据分析可以从以下几个方面来进行: 1. 数据量大:这是我们今天讨论的数据的一个最基本特点,这个特点在查询框架设计时要引起足够的重视。 2. 关联复杂,多表关联:越是简单的数据可能关联越少,而越是复杂的数据往往都是多表关联,这样很多时候你需要将这几张表作为一个整体来考虑。 3. 变化频率:从这个角度出发,可以大致将数据分为以下几类:几乎不变化的睡眠数据;有规律定时更新的数据,比如招聘网站的职位信息;经常性无规律更新的数据。 4. 成长性:数据是否具有成长性,要预见数据的成长性,并在现有方案中考虑这种成长性,避免到时候查询框架的重新设计。 处理大数据量的查询需要从数据及数据查询的特点出发,选择适合的解决方案,并且需要考虑到缓存的局限性,数据分析的多方面因素,以及查询框架的设计。
- 粉丝: 3
- 资源: 32
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- IMG_9980.JPG
- 【java毕业设计】医院资产管理系统源码(ssm+mysql+说明文档+LW).zip
- 【java毕业设计】医院预约挂号系统源码(ssm+mysql+说明文档+LW).zip
- tensorflow-simple-yanzhengma【程序员VIP专用】.zip
- 基于Serverless的云原生渗透测试模式及其应用场景
- 【java毕业设计】学业帮扶管理系统源码(ssm+mysql+说明文档).zip
- 域外渗透域内思路:使用工具与技术进行域内侦察与暴力破解
- 【java毕业设计】学校小卖部收银系统源码(ssm+mysql+说明文档+LW).zip
- 【java毕业设计】学术成果管理系统源码(ssm+mysql+说明文档+LW).zip
- 新质生产力水平测算数据(多个版本合集)【重磅,更新!】