[发明专利]从数据库中读取数据的方法及装置有效
| 申请号: | 201180004080.2 | 申请日: | 2011-03-22 |
| 公开(公告)号: | CN102741843A | 公开(公告)日: | 2012-10-17 |
| 发明(设计)人: | 王震 | 申请(专利权)人: | 青岛海信传媒网络技术有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
| 地址: | 266071 山东省青*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 数据库 读取 数据 方法 装置 | ||
技术领域
本发明涉及数据库领域,尤其涉及一种从数据库中读取数据的方法及装置。
背景技术
在现代计算机技术中,数据库的应用非常广泛,它是用于组织、存储和管理数据的仓库。数据库作为整个应用系统的核心,其重要性不言而喻。而大多数应用的数据库读取操作比写操作更密集,而且查询条件相对复杂,数据库的大部分性能消耗在查询上,尤其在高用户、高并发的大型应用中,数据库的直接读取的代价非常高,这时数据库将会成为整个应用的瓶颈。缓存是内存的一部分,用来缓存数据的一块区域。当应用程序需要这些数据时,可以直接从缓存中提取,不需要访问数据库。故缓存是提高性能、缓解数据库压力的一种高效方法。而缓存更新就是把数据库中的数据读取并更新到内存中去,其中如何从数据库中读取数据,是影响整个系统性能的关键。
目前从数据库读取数据的方法有两种,包括:第一种,各缓存节点定时轮询数据库,检查增量表或者源表的数据是否发生变化,如果有变化则读取数据并更新缓存,同时在数据库中标识该数据已被更新或删除。该方法有如下缺点:各缓存节点在检查增量表或者源表的数据是否发生变化时需要定时轮询数据库,当系统比较大、缓存节点比较多的时候,频繁、大量的轮询数据库,将会严重影响数据库的性能,给数据库造成了更大的压力,并且各缓存节点定时轮询必定有时间间隔,当增量表或者源表的数据发生变化时更新缓存的实时性不是特别高。
第二种,利用应用程序对变更的数据进行采集、传输和维护操作。当数据被修改并保存到数据库后,应用程序进行数据修改通知,把被修改的数据或者数据记录唯一标识传递给各个缓存节点,然后各个缓存节点再进行缓存数据更新。此方法有效的解决了各缓存节点定时轮询数据库方法实时性差的问题,并且由于缓存节点不再轮询数据库,所以在很大程度上提高数据库性能,缓解了数据库压力。但是,该方法要为所有处理缓存数据更新的功能模块编写相应的处理缓存更新的代码。并且由于变动的数据是通过应用程序传输的,当在一些大型应用系统,需要多节点缓存时,因为各个缓存节点需求的数据不一样,需要对各个缓存节点进行相应的配置,所以会使整个系统非常复杂、繁琐,开发难度、开发量和维护量都会大大增加。
发明内容
本发明的实施例提供一种从数据库中读取数据的方法及装置,实现了缓存的实时更新,并且降低了整个应用系统开发的复杂性。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,本发明的实施例提供一种从数据库中读取数据的方法,包括:
根据缓存节点需要缓存的数据内容,为所述需要缓存的数据内容建立数据读取控制表和创建消息队列,所述数据读取控制表包括缓存节点信息表和缓存节点数据表,所述缓存节点信息表包括缓存节点ID和缓存节点标识,所述缓存节点数据表包括数据表标识、归属缓存节点标识、实际读取对象标识;
当应用程序更新数据库中的数据时,更新数据的数据表对应的触发器,将所述数据表的更新数据信息和所述数据表需要缓存的缓存节点标识,写入到所述数据表对应的消息队列中;
缓存节点从所述缓存节点对应的消息队列中读取所述缓存节点对应的更新数据信息,并根据所述更新数据信息更新所述缓存节点中的数据。
另一方面,本发明的实施例提供一种从数据库读取数据的装置,包括:
建立单元,用于根据缓存节点需要缓存的数据内容,为所述需要缓存的数据内容建立数据读取控制表,所述数据读取控制表包括缓存节点信息表和缓存节点数据表,所述缓存节点信息表包括缓存节点ID和缓存节点标识,所述缓冲节点数据表包括数据表标识、归属缓存节点标识、实际读取对象标识;
创建单元,用于根据缓存节点需要缓存的数据内容,为所述需要缓存的数据内容创建消息队列;
写入单元,用于当应用程序更新数据库中的数据时,更新数据的数据表对应的触发器,将所述数据表的更新数据信息和缓存所述数据表的缓存节点标识,写入到所述数据表对应的消息队列中;
读取单元,用于所述缓存节点从所述缓存节点对应的消息队列中读取所述缓存节点对应的更新数据信息,并根据所述更新数据信息更新所述缓存节点中的数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛海信传媒网络技术有限公司,未经青岛海信传媒网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180004080.2/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





