数据库集群、数据查询方法、数据同步方法和装置制造方法及图纸

技术编号:10742529 阅读:238 留言:0更新日期:2014-12-10 15:43
本发明专利技术公开了一种数据库集群、数据查询方法、数据同步方法和装置,属于数据处理技术领域。所述数据库集群包括存储有相同数据的第一分区集合和第二分区集合;所述第一分区集合包括按照主键进行分区的至少一个主键分区,每个主键分区中按照主键进行数据存储;所述第二分区集合包括按照全局索引进行分区的至少一个索引分区,每个索引分区中按照索引进行数据存储,且具有相同索引的数据存储于同一个索引分区中。解决了现有技术中数据查询效率低的问题;达到了根据查询语句中的索引字段以及按照索引分区得到的至少一个索引分区可以直接查询到请求的数据,提高数据查询效率的效果。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种数据库集群、数据查询方法、数据同步方法和装置,属于数据处理
。所述数据库集群包括存储有相同数据的第一分区集合和第二分区集合;所述第一分区集合包括按照主键进行分区的至少一个主键分区,每个主键分区中按照主键进行数据存储;所述第二分区集合包括按照全局索引进行分区的至少一个索引分区,每个索引分区中按照索引进行数据存储,且具有相同索引的数据存储于同一个索引分区中。解决了现有技术中数据查询效率低的问题;达到了根据查询语句中的索引字段以及按照索引分区得到的至少一个索引分区可以直接查询到请求的数据,提高数据查询效率的效果。【专利说明】数据库集群、数据查询方法、数据同步方法和装置
本专利技术涉及数据处理
,特别涉及一种数据库集群、数据查询方法、数据同步方法和装置。
技术介绍
为了提高数据库的存储能力,目前通常使用数据库集群来共同提供存储服务。数据库集群将原始数据表中的数据按照主键存放到数据库集群中的多个分区,也即在每个分区中存储原始数据表中的一部分数据来实现大数据量的数据存储。 为了实现对数据库集群中存储的数据进行快速查询,系统还可以在每个分区中分别创建二级索引,存储创建的二级索引。此后,当系统接收到基于索引字段的数据查询语句时,系统可以先在各个分区存储的二级索引中查询与数据查询语句中的索引字段匹配的索弓丨,在查询到的索引所在的分区中查询与该索引对应的主键,然后在分区中查询与主键对应的数据,最后,将在各个分区中查询到的数据组合作为查询结果。 在实现本专利技术的过程中,专利技术人发现上述技术至少存在以下问题:由于二级索引是对应于分区的索引,如果有100个分区就有100个二级索引,所以在系统根据索引进行数据查询时,系统需要遍历查询所有分区中的所有索引,系统的数据查询效率较低。
技术实现思路
为了解决现有技术中系统的数据查询效率较低的问题,本专利技术实施例提供了一种数据库集群、数据查询方法、数据同步方法和装置。所述技术方案如下: 第一方面,提供了一种数据库集群,所述数据库集群包括存储有相同数据的第一分区集合和第二分区集合; 所述第一分区集合包括按照主键进行分区的至少一个主键分区,每个主键分区中按照主键进行数据存储; 所述第二分区集合包括按照全局索引进行分区的至少一个索引分区,每个索引分区中按照索引进行数据存储,且具有相同索引的数据存储于同一个索引分区中。 第二方面,提供了一种数据查询方法,所述方法用于第一方面所述的数据库集群中,所述方法包括: 获取针对所述数据库集群的查询语句; 判断所述查询语句是否是基于索引字段的查询语句; 如果所述查询语句是基于索引字段的查询语句,则在所述第二分区集合中查询与所述查询语句对应的数据。 可选地,所述在所述第二分区集合中查询与所述查询语句对应的数据,包括: 获取所述第二分区集合中的各个分区的分区描述信息; 根据所述查询语句以及所述分区描述信息确定所述第二分区集合中与所述查询语句所对应的分区; 在确定的所述分区中进行数据查询。 可选地,所述方法还包括: 如果所述查询语句是基于主键的查询语句,则在所述第一分区集合中进行数据查询。 第三方面,提供了一种数据同步方法,所述方法用于第一方面所述的数据库集群中,所述方法包括: 获取所述数据库集群中的所述第一分区集合所对应的服务器中的日志事件; 根据所述日志事件同步所述数据库集群中的所述第二分区集合中的数据。 可选地,所述根据所述日志事件同步所述数据库集群中的所述第二分区集合中的数据,包括: 从所述日志事件中过滤出所述第一分区集合的数据操作事件,所述数据操作事件包括:数据新建事件、数据更新事件和数据删除事件; 根据过滤得到的所述数据操作事件生成执行命令; 根据所述执行命令同步所述第二分区集合中相应的数据。 第四方面,提供了一种数据查询装置,所述装置用于第一方面所述的数据库集群中,所述装置包括: 查询语句获取模块,用于获取针对所述数据库集群的查询语句; 查询语句判断模块,用于判断所述查询语句获取模块获取到的所述查询语句是否是基于索引字段的查询语句; 第一数据查询模块,用于在所述查询语句判断模块的判断结果为所述查询语句是基于索引字段的查询语句时,在所述第二分区集合中查询与所述查询语句对应的数据。 可选地,所述第一数据查询模块,包括: 分区信息获取单元,用于获取所述第二分区集合中的各个分区的分区描述信息; 分区确定单元,用于根据所述查询语句以及所述分区信息获取单元获取到的所述分区描述信息确定所述第二分区集合中与所述查询语句所对应的分区; 数据查询单元,用于在所述分区确定单元确定的所述分区中进行数据查询。 可选地,所述装置还包括: 第二数据查询模块,用于在所述查询语句判断模块的判断结果为所述查询语句是基于主键的查询语句时,在所述第一分区集合中进行数据查询。 第五方面,提供了一种数据同步装置,用于第一方面所述的数据库集群中,所述装置包括: 日志事件获取模块,用于获取所述数据库集群中的所述第一分区集合所对应的服务器中的日志事件; 数据同步模块,用于根据所述日志事件获取模块获取到的所述日志事件同步所述数据库集群中的所述第二分区集合中的数据。 可选地,操作事件获取单元,用于从所述日志事件中过滤出所述第一分区集合的数据操作事件,所述数据操作事件包括:数据新建事件、数据更新事件和数据删除事件; 命令生成单元,用于根据所述操作事件获取单元过滤得到的所述数据操作事件生成执行命令; 数据同步单元,用于根据所述命令生成单元生成的所述执行命令同步所述第二分区集合中相应的数据。 本专利技术实施例提供的技术方案的有益效果是: 通过将数据同时存储在第一分区集合和第二分区集合中;第一分区集合包括按照主键进行分区的至少一个主键分区,每个主键分区按照主键进行数据存储;第二分区集合包括按照全局索引进行分区的至少一个索引分区,每个索引分区中按照索引进行数据存储,且具有相同索引的数据存储于同一个索引分区中;使得在数据查询时,当查询语句为基于索引字段的查询语句时,数据库集群可以在第二分区集合中直接查询与查询语句中的索引字段对应的数据;解决了现有技术中数据查询效率低的问题;达到了根据查询语句中的索引字段以及按照索引分区的得到的至少一个索引分区可以直接查询到请求的数据,提高数据查询效率的效果。 【专利附图】【附图说明】 为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。 图1是本专利技术一个实施例提供的数据库集群的结构示意图; 图2是本专利技术一个实施例提供的数据查询方法的方法流程图; 图3是本专利技术另一实施例提供的数据查询方法的方法流程图; 图4是本专利技术一个实施例提供的数据同步方法的方法流程图; 图5是本专利技术另一实施例提供的数据同步方法的方法流程图; 图6是本专利技术一个实施例提供的数据查询装置的结构方框图; 图7是本专利技术另一实施例提供的数据查询装置的结构方框图; 图8本文档来自技高网
...
数据库集群、数据查询方法、数据同步方法和装置

【技术保护点】
一种数据库集群,其特征在于,所述数据库集群包括存储有相同数据的第一分区集合和第二分区集合;所述第一分区集合包括按照主键进行分区的至少一个主键分区,每个主键分区中按照主键进行数据存储;所述第二分区集合包括按照全局索引进行分区的至少一个索引分区,每个索引分区中按照索引进行数据存储,且具有相同索引的数据存储于同一个索引分区中。

【技术特征摘要】

【专利技术属性】
技术研发人员:喻先兵
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1