CN103853718A - 分片数据库访问方法及数据库系统 - Google Patents

分片数据库访问方法及数据库系统 Download PDF

Info

Publication number
CN103853718A
CN103853718A CN201210496069.9A CN201210496069A CN103853718A CN 103853718 A CN103853718 A CN 103853718A CN 201210496069 A CN201210496069 A CN 201210496069A CN 103853718 A CN103853718 A CN 103853718A
Authority
CN
China
Prior art keywords
database
visited
spring
access method
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201210496069.9A
Other languages
English (en)
Other versions
CN103853718B (zh
Inventor
郭清
胡迪
潘明国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Jianfu Chain Management Co.,Ltd.
Original Assignee
Niuhai Information Technology (Shanghai) Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Niuhai Information Technology (Shanghai) Co Ltd filed Critical Niuhai Information Technology (Shanghai) Co Ltd
Priority to CN201210496069.9A priority Critical patent/CN103853718B/zh
Publication of CN103853718A publication Critical patent/CN103853718A/zh
Application granted granted Critical
Publication of CN103853718B publication Critical patent/CN103853718B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种分片数据库访问方法及数据库系统。所述分片数据库访问方法用于Mybatis和Spring构架,包括以下步骤:1、基于一数据库事务通过Spring配置文件定位待访问的数据库;2、分别为每个待访问的数据库建立一访问线程;3、Mybatis的数据库操作接口通过各个访问线程操作各个访问线程关联的待访问的数据库,收集各个访问线程的反馈数据并生成执行结果;4、Spring的事务管理接口基于所述数据库操作接口生成的执行结果检测所述数据库事务是否执行成功,并执行相应地提交和回滚。本发明还提供了一种使用所述分片数据库访问方法的数据库系统。本发明利用现有的框架,通过路由策略来实现分页数据库的操作。

Description

分片数据库访问方法及数据库系统
技术领域
本发明涉及一种分片数据库访问方法及数据库系统,特别是涉及一种适用于Mybatis和Spring框架的分片数据库访问方法及数据库系统。
背景技术
数据库的扩展是一个永恒的话题。对于传统的关系数据库,采用的是纵向扩展(ScaleUp)的方式,即买更好的机器添加更多的资源来取得更好的性能(如硬件升级、更快更多的CPU(中央处理器)、更大的内存、更多更大的磁盘等)。关系数据库通过ScaleUp方式已在传统的企业应用环境中统治了将近三十多年。但是近年来随着数据量的暴增尤其是云计算模式的出现,这种扩展模式对于某些应用已经不太适合,这时便出现了横向扩展(ScaleOut)模式,sharding就是其中一种。
sharding是把数据库Scale Out到多个物理节点上的一种有效的方式。Shard这个词的意思是“碎片”。如果将一个数据库当作一块大玻璃,将这块玻璃打碎,那么每一小块都称为数据库的碎片。将整个数据库打碎的过程就叫做sharding,可以翻译为分片。
形式上,sharding可以简单定义为将大数据库分布到多个物理节点上的一个分区方案。每一个分区包含数据库的某一部分,称为一个shard,分区方式可以是任意的,并不局限于传统的水平分区和垂直分区。系统中需要有服务器进行查询路由转发,负责将查询转发到包含该查询所访问数据的shard或shards节点上去执行。
而目前的Mybatis系统还主要使用单数据库架构,所以采用的是纵向扩展的方式,因而很多基于Mybatis系统面临着大数据量、高并发的考验,它们非常需要应用sharding来缓解数据库的巨大压力。但是成熟的基于Mybatis的sharding框架却还没有出现。
发明内容
本发明要解决的技术问题是为了克服现有技术中的Mybatis系统不适用于sharding框架的多数据库系统的缺陷,提供一种分片数据库访问方法及其数据库系统,利用现有的Mybatis和Spring框架,通过路由策略来实现sharding数据库的操作。
本发明是通过下述技术方案来解决上述技术问题的:
本发明提供了一种分片数据库访问方法,适用于Mybatis和Spring框架,其特点是,所述分片数据库访问方法包括以下步骤:
S1、基于一数据库事务通过Spring配置文件定位待访问的数据库;
S2、分别为每个待访问的数据库建立一访问线程;
S3、Mybatis的数据库操作接口通过各个访问线程操作与各个访问线程关联的待访问的数据库,收集各个访问线程的反馈数据并生成执行结果;
S4、Spring的事务管理接口基于Mybatis的数据库操作接口生成的执行结果检测所述数据库事务是否执行成功,若是,所述Spring的事务管理接口向各个待访问的数据库提交事务,否则所述Spring的事务管理接口向各个待访问的数据库回滚事务。
本发明中利用Mybatis和Spring框架实现多数据库的访问和操作,从而实现分片数据库的事务提交和回滚。其中利用Spring进行分片数据库的事务具体提交和回滚,利用Mybatis实现对各个数据库的具体操作。
其中所述MyBatis是一个基于Java(一种编程语言)的持久层框架。其提供的持久层框架是一种支持普通SQL(结构化查询语言)查询,存储过程和高级映射的优秀持久层框架。
所述Spring是一个开源框架,它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean(一种JAVA语言写成的可重用组件)来完成以前只可能由EJB(Enterprise JavaBean,一种企业的JAVA可重用组件)完成的事情。
其中所述Spring配置文件为现有的Spring框架中设置路由信息或路由类的文件,所以本发明中不再详细赘述。
此外本发明中所述数据库事务是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的原子性、一致性、隔离性和持久性的属性。也就是说,本发明中的数据库事务是指对各个待访问的数据库的操作的具体的集合,仅在所有操作都成功时,才对所述各个待访问的数据库的具体操作内容进行更新。若失败,则将所述各个待访问的数据库的具体操作内容进行回滚还原,从而保证各个数据库内容的确定。
较佳地,所述步骤S1为:
S11、基于所述数据库事务通过Spring配置文件的路由信息或路由类来定位待访问的数据库。
S12、基于所述待访问的数据库,关联Mybatis Mapper文件的statement所需要访问的Spring配置文件的路由信息或路由类。
其中所述statement为Mybatis Mapper文件所配置的用于从Spring配置文件待访问的数据库的路由策略的路由信息或路由类。本发明中利用Mybatis框架现有的Mybatis Mapper文件中的statement的路由策略来确定在整个分片数据库中待访问的数据库。
较佳地,在所述步骤S1之前还包括以下步骤:
在所述Spring配置文件中配置从数据库。
本发明中利用现有Spring配置文件的读写分离技术,通过设置从数据库(即slave数据库)的方式,将数据库的读操作和数据库的增删改操作分散到不同的数据库中,从而提高读写数据的效率。
较佳地,所述步骤S3为:
S31、所述Mybatis的数据库操作接口通过各个访问线程操作与各个访问线程关联的待访问的数据库,并收集各个访问线程的反馈数据;
S32、所述Mybatis的数据库操作接口基于所述反馈数据通过SQL操作生成执行结果。
优选地,所述SQL操作为求和、查询最大值、查询最小值、计数或排序等。
较佳地,步骤S4中还包括以下步骤:
所述Spring的事务管理接口与各个待访问的数据库建立数据链接。
优选地,所述步骤S2中还包括以下步骤:
所述Spring的事务管理接口与各个待访问的数据库通过LazyConnectionDataSourceProxy链接。
其中所述LazyConnectionDataSourceProxy在Spring架构中用于延迟获取数据库连接,即只有在真正创建Statement等操作数据库的数据链接时才获取实际的连接。
本发明通过在上述步骤S4和步骤S2中用LazyConnectionDataSourceProxy建立链接,避免了在开启事务时创建过多的连接,只有在需要对数据库进行实际操作时,才建立到数据库的连接,从而减少无谓的数据库连接开销。
较佳地,所述步骤S4之后还包括以下步骤:
S5、所述待访问的数据库之间数据同步。
优选地,所述步骤S5为:
所述待访问的数据库通过Replication机制同步数据。
本发明中所述数据库之间通过现有数据库中自带的Replication机制实现数据的同步。所以本发明不再对所述Replication机制进行详细地描述。此外任何数据库的数据同步机制均可应用于本发明的数据库同步中。
本发明还提供了一种数据库系统,其特点是,所述数据库系统包括一服务器和一输入装置,其中所述服务器具有一个或多个数据库,所述输入装置使用Mybatis和Spring框架,并通过如上所述的分片数据库访问方法访问所述数据库。
较佳地,所述数据库系统还包括一ID(身份识别)生成器,所述ID生成器为每个所述数据库生成一ID识别信息,其中各个ID识别信息均是唯一的。
为了避免数据库的ID出现重复,本发明提供了ID生成器来保证分布式环境下ID的唯一性和生成效率。其中它既可以生成字符串型和数字型ID,其中数字型ID支持Oracle(甲骨文公司的数据库)、MySQL数据库(一个中、小型关系型数据库),例如ID生成器从数据库中获取一段ID后放进内存中,使用的时候先从内存中获取ID,如果内存中的ID用完了再向数据库中获取下一段ID。
较佳地,所述服务器还包括一SQL日志,所述SQL日志记录如上所述分片数据库访问方法中执行超时的SQL语句。
本发明中还通过所述SQL日志记录执行超时的所述分片数据库访问方法的SQL语句,从而便于找出消耗数据库资源的具体的SQL语句。
优选地,所述数据库为分页数据库。
本发明中所述数据库可以是单数据库物理分页或者多数据库逻辑分页等方式的分页数据库。
较佳地,所述分页数据库均包括一缓存,所述缓存用于存储通过如上所述的分片数据库访问方法访问所述分页数据库的各个分页的执行结果。本发明中通过使用缓存来提高分页数据库中分页的效率
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
本发明的积极进步效果在于:
本发明的分片数据库访问方法及其数据库系统,利用现有的Mybatis和Spring框架,通过路由策略来实现sharding数据库的操作。
同时,本发明还通过Spring的事务管理接口和Mybatis对数据库的操作的结合,实现了sharding数据库的多数据库的提交和回滚,保证了结果的正确性。
此外还进一步的利用Spring架构的LazyConnectionDataSourceProxy来减少无谓的数据库连接开销。
最后,本发明还通过ID生成器和SQL日志来保证数据库的唯一标识以及找出消耗数据库资源的具体的SQL语句。
附图说明
图1为本发明的数据库系统的较佳实施例的结构示意图。
图2为本发明的较佳实施例的数据库访问的流程图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
本实施例的数据库系统采用Mybatis和Spring框架,实现对sharding数据库的操作,即实现了数据库访问的可配置性。能够方便的通过配置文件来配置数据库访问路由策略。而且使得开发数据库应用的透明性。此外还抑制了数据访问的效率很可能会随着数据库的增加而下降的问题。并且保证了数据访问的正确性。即在多数据库的事务操作实现多库提交或者多库回滚,保证数据的一致性和正确性。使得正常使用所述多数据库的求和、计数、查询最大值、查询最小值、排序、分页等SQL操作。
因此如图1所示,本实施例的数据库系统包括一服务器1、一输入装置2和一ID生成器3。
其中本实施例中所述服务器中包括2个数据库(图中未显示),其中所述服务器中包括的数据库的数量是任意的,而不仅限于本实施例的2个数据库。其中若所述数据库为分页数据库,则本实施例中可以通过对Mybatis和Spring框架中配置文件的修改来提高分页的效率。
具体的说,可以采用如下代码:
Figure BDA00002481625500061
Figure BDA00002481625500071
上述代码中通过从Spring中获取paginationUtil,调用doPage方法,参数依次是sqlSession、Mapper文件中的statementID、参数、第几页、每页记录条数、排序属性名、是否降序。
上述代码可以看到若应用方的SQL中没有出现分页的语句,可以避免了SQL和特定数据库的绑定,这是因为本实施例是通过PaginationInterceptor类作为Mybatis的插件,在执行SQL之前根据当前数据库类型,直接修改SQL语句(增加分页的SQL),然后再执行修改后的SQL从而实现分页的。如果采用现有方式进行分页,除了需要写访问多个数据库的代码外,分页的时候效率不高,也容易出错。
所述服务器1还包括一SQL日志(图中未显示),所述SQL日志记录执行随所述2个数据库访问时超时的SQL语句,具体地说,就是记录执行超过指定时间的SQL语句,方便找出消耗数据库资源的statement语句。其中在执行数据库操作之前会先记录当前时间,执行完后和先前时间进行比较,如果时间间隔超过了应用方在配置文件中配置的超时时间,会在日志里记录SQL语句和执行时间信息。
所述ID生成器3用于为服务器1中的数据库各自生成一个唯一的ID识别信息,而且各个数据库通过各自的ID识别信息进行区别,具体地说,就是为所述2个数据库各自生成一个ID识别信息,这2个ID识别信息均是唯一的,从而通过所述ID识别信息就可以区分所述2个数据库。
其中所述ID生成器3可以利用Spring配置文件实现,例如采用如下代码来实现ID生成器3:
在Spring配置文件中加入下述代码:
Figure BDA00002481625500081
Figure BDA00002481625500091
如上代码实现的ID生成器3,现有技术生成ID的一般的作法是在某一台数据库建立Sequence队列,然后从该Sequence队列获取ID,如果该数据库出问题了可能需要修改代码,并且分页数据库的环境对生成ID的效率要求比较高。本实施例通过所述ID生成器3来保证分布式环境下ID的唯一性和生成效率。建立Sequence队列的数据库信息配置在Spring配置文件中,可以方便修改。并且Sequence队列每次递增1000个(该数量可任意配置),ID生成器3将这1000之类的ID放进内存里,下次获取ID时先从内存获取ID,如果内存ID用完了再从Sequence队列获取下1000个ID,从而提升效率。
本实施例的所述输入装置2基于Mybatis和Spring框架来实现对所述3个数据库的访问和操作,其中如图2所示,具体的访问流程如下所述:
步骤1,在所述Spring配置文件中配置从数据库。
即本实施例通过在Spring配置文件中配置slave数据库(即所述从数据库)来支持读写分离技术。读写分离就是将数据库的读操作和增删改操作分散到不同的数据库中,从而提高读写数据的效率。因此Spring配置文件中针对每个数据源可以配置对应的读库。
本实施例中可以采用如下代码来实现所述Spring配置文件中的从数据库和路由的管理。
Figure BDA00002481625500101
而且本实施例中既可以通过配置路由策略来设置Mybatis Mapper文件中的statement访问哪个或者哪些数据库。还可以通过编程式路由策略来寻找statement访问哪个或者哪些数据库。
其中配置式路由策略就是在Spring配置文件中直接配置statement对应哪些数据库,简单方便。编程式路由策略就是编写路由类,更加灵活,然后将类名配置在Spring配置文件中,这种方式可以根据Mybatis Mapper文件中的statement全名、statement命名空间、parameter包名和类名、parameter包名四种方式来定位路由类。从而寻找statement访问哪个或者哪些数据库。
例如若需要将ID为奇数的数据插入p1数据库库的dbs_test表,将ID为偶数的数据插入p2数据库的dbs_test表时,可以采用如下代码实现所述配置路由策略或编程式路由策略:
1、配置路由策略
设定TestDomainRouter路由类:
Figure BDA00002481625500111
2、编程式路由策略
通过路由管理器,配置路由信息:
Figure BDA00002481625500122
Figure BDA00002481625500131
步骤2,基于所述数据库事务通过Spring配置文件的路由信息或路由类来定位待访问的数据库。
其中本实施例中通过如下代码来实现数据库事务的管理:
Figure BDA00002481625500132
步骤3,基于所述待访问的数据库,关联Mybatis Mapper文件的statement所需要访问的Spring配置文件的路由信息或路由类。
即通过上述的编程式路由策略和Mybatis Mapper文件的statement来确定所述数据库事务所需要操作的数据库。
步骤4,分别为每个待访问的数据库建立一访问线程,并且所述Spring的事务管理接口与各个待访问的数据库通过LazyConnectionDataSourceProxy链接。
本实施例中针对每个待访问的数据库开启一个线程访问,最后等所有线程执行完毕后将结果汇总处理,返回给应用方,从而提高数据库访问效率。
而且为了支持Best Effort 1PC Pattern模式(一种分布式数据库事务处理模式)的分布式事务,能够实现多数据库事务的提交和回滚。本实施例中通过建立继承类来实现了Spring框架中的PlatformTransactionManager接口,其中执行commit和rollback(提交和回滚)时会对每个数据库执行各自的commit和rollback,在开启事务时,是采用Spring框架自身提供的LazyConnectionDataSourceProxy连接数据库,这时候并没有生成实际的链接,当实际操作数据库时才生成链接去连接数据库,这样避免了一开始就生成过多的链接,减少无谓的数据库连接开销。
步骤5,所述Mybatis的数据库操作接口通过各个访问线程操作各个访问线程关联的待访问的数据库,并收集各个访问线程的反馈数据。
步骤6,所述Mybatis的数据库操作接口基于所述反馈数据通过SQL操作生成执行结果。
其中Mybatis的数据库操作接口是SqlSession接口,本实施例通过建立所述SqlSession接口的继承类SqlSessionTemplateExtend类来实现多个数据库的操作。
例如通过如下代码来实现所述SqlSessionTemplateExtend类:
Figure BDA00002481625500141
通过所述SqlSession接口的继承类SqlSessionTemplateExtend类,开发者在自作其他应用代码时不再涉及访问多个数据库的代码,所以开发者可以透明的访问多个数据库。
其中本实施例具体的所述SQL操作包括求和、查询最大值、查询最小值、计数和排序等等。所述SQL操作均是Mybatis自身所具有的SQL操作。
而且上述继承类SqlSessionTemplateExtend类继承了所述SqlSession接口的所述SQL操作。所以本实施例中通过下述代码来使用所述SqlSessionTemplateExtend类继承的所述SQL操作:
Figure BDA00002481625500151
其中所述selectMaxForInt为SqlSessionTemplateExtend类所继承自SqlSession  接口的MaxForInt  的SQL  操作,此外所述SqlSessionTemplateExtend类还可以继承MaxForLong、MinForInt、Count、SumForInt、ListForSort等等。
步骤7,所述Spring的事务管理接口与各个待访问的数据库建立数据链接。Spring的事务管理接口基于Mybatis的数据库操作接口生成的执行结果检测所述数据库事务是否执行成功,若是进入步骤8,否则进入步骤9。
步骤8,所述Spring的事务管理接口向各个提交待访问的数据库提交事务,并进入步骤10。
步骤9,所述Spring的事务管理接口向各个提交待访问的数据库回滚事务。
步骤10,所述待访问的数据库通过Replication机制同步数据。本实施例中各个数据库之间的数据同步是通过数据库自带的Replication机制实现。
通过以上的具体实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM(只读存储器/随机存取存储器)、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC(个人电脑)、小型计机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令中描述,也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (14)

1.一种分片数据库访问方法,用于Mybatis和Spring构架,其特征在于,所述分片数据库访问方法包括以下步骤:
S1、基于一数据库事务通过Spring配置文件定位待访问的数据库;
S2、分别为每个待访问的数据库建立一访问线程;
S3、Mybatis的数据库操作接口通过各个访问线程操作与各个访问线程关联的待访问的数据库,收集各个访问线程的反馈数据并生成执行结果;
S4、Spring的事务管理接口基于Mybatis的数据库操作接口生成的执行结果检测所述数据库事务是否执行成功,若是,所述Spring的事务管理接口向各个待访问的数据库提交事务,否则所述Spring的事务管理接口向各个待访问的数据库回滚事务。
2.如权利要求1所述的分片数据库访问方法,其特征在于,所述步骤S1为:
S11、基于所述数据库事务通过Spring配置文件的路由信息或路由类来定位待访问的数据库;
S12、基于所述待访问的数据库,关联Mybatis Mapper文件的statement所需要访问的Spring配置文件的路由信息或路由类。
3.如权利要求1所述的分片数据库访问方法,其特征在于,在所述步骤S1之前还包括以下步骤:
在所述Spring配置文件中配置从数据库。
4.如权利要求1所述的分片数据库访问方法,其特征在于,所述步骤S3为:
S31、所述Mybatis的数据库操作接口通过各个访问线程操作与各个访问线程关联的待访问的数据库,并收集各个访问线程的反馈数据;
S32、所述Mybatis的数据库操作接口基于所述反馈数据通过SQL操作生成执行结果。
5.如权利要求4所述的分片数据库访问方法,其特征在于,所述SQL操作为求和、查询最大值、查询最小值、计数或排序。
6.如权利要求1所述的分片数据库访问方法,其特征在于,步骤S4中还包括以下步骤:
所述Spring的事务管理接口与各个待访问的数据库建立数据链接。
7.如权利要求6所述的分片数据库访问方法,其特征在于,所述步骤S2中还包括以下步骤:
所述Spring的事务管理接口与各个待访问的数据库通过LazyConnectionDataSourceProxy链接。
8.如权利要求1所述的分片数据库访问方法,其特征在于,所述步骤S4之后还包括以下步骤:
S5、所述待访问的数据库之间数据同步。
9.如权利要求8所述的分片数据库访问方法,其特征在于,所述步骤S5为:
所述待访问的数据库通过Replication机制同步数据。
10.一种数据库系统,其特征在于,所述数据库系统包括一服务器和一输入装置,其中所述服务器具有一个或多个数据库,所述输入装置使用Mybatis和Spring框架,并通过如权利要求1-9中任一项所述的分片数据库访问方法访问所述数据库。
11.如权利要求10所述的数据库系统,其特征在于,所述数据库系统还包括一ID生成器,所述ID生成器为每个所述数据库生成一ID识别信息,其中各个ID识别信息均是唯一的。
12.如权利要求10所述的数据库系统,其特征在于,所述服务器还包括一SQL日志,所述SQL日志记录如权利要求1-9中任一项所述分片数据库访问方法中执行超时的SQL语句。
13.如权利要求10-12中任一项所述的数据库系统,其特征在于,所述数据库为分页数据库。
14.如权利要求13所述的数据库系统,其特征在于,所述分页数据库均包括一缓存,所述缓存用于存储通过如权利要求1-9中任一项所述的分片数据库访问方法访问所述分页数据库的各个分页的执行结果。
CN201210496069.9A 2012-11-28 2012-11-28 分片数据库访问方法及数据库系统 Active CN103853718B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210496069.9A CN103853718B (zh) 2012-11-28 2012-11-28 分片数据库访问方法及数据库系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210496069.9A CN103853718B (zh) 2012-11-28 2012-11-28 分片数据库访问方法及数据库系统

Publications (2)

Publication Number Publication Date
CN103853718A true CN103853718A (zh) 2014-06-11
CN103853718B CN103853718B (zh) 2018-05-08

Family

ID=50861386

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210496069.9A Active CN103853718B (zh) 2012-11-28 2012-11-28 分片数据库访问方法及数据库系统

Country Status (1)

Country Link
CN (1) CN103853718B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105843820A (zh) * 2015-01-16 2016-08-10 阿里巴巴集团控股有限公司 数据迁移方法及装置
CN106095878A (zh) * 2016-06-07 2016-11-09 中国建设银行股份有限公司 基于分库分表的数据库操作装置及方法
CN107066463A (zh) * 2016-10-28 2017-08-18 阿里巴巴集团控股有限公司 数据处理方法、装置和服务器
CN107315761A (zh) * 2017-04-17 2017-11-03 阿里巴巴集团控股有限公司 一种数据更新方法、数据查询方法及装置
CN107391622A (zh) * 2017-07-06 2017-11-24 联动优势科技有限公司 一种数据访问方法及设备
WO2017201970A1 (zh) * 2016-05-21 2017-11-30 乐视控股(北京)有限公司 一种分库数据库系统及其路由方法
CN107787490A (zh) * 2015-05-11 2018-03-09 甲骨文国际公司 分布式数据库网格中的直接连接功能
CN108595487A (zh) * 2018-03-14 2018-09-28 摇了购(武汉)电子商务有限公司 一种大数据高并发下访问数据的方法及系统
CN110046170A (zh) * 2019-04-22 2019-07-23 深圳乐信软件技术有限公司 基于多文件管理的语句执行方法、装置、设备和介质
CN110222064A (zh) * 2019-06-19 2019-09-10 北京字节跳动网络技术有限公司 数据处理方法、装置、电子设备及可读存储介质
CN110716976A (zh) * 2019-10-12 2020-01-21 广州接入信息科技有限公司 基于两种交互场景的分布式数据访问及存储系统
CN111639090A (zh) * 2020-06-03 2020-09-08 山东汇贸电子口岸有限公司 一种数据抽取过程中的数据一致性控制方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1448867A (zh) * 2002-03-30 2003-10-15 深圳市中兴通讯股份有限公司 一种统一访问数据库系统的方法
US20080040334A1 (en) * 2006-08-09 2008-02-14 Gad Haber Operation of Relational Database Optimizers by Inserting Redundant Sub-Queries in Complex Queries
CN101127045A (zh) * 2007-09-25 2008-02-20 中兴通讯股份有限公司 数据库可重复读实现方法、装置及数据库管理系统
US20110184915A1 (en) * 2010-01-28 2011-07-28 Microsoft Corporation Cluster restore and rebuild
CN102541997A (zh) * 2011-11-23 2012-07-04 苏州阔地网络科技有限公司 一种自动分库的数据库执行方法及系统
CN102650953A (zh) * 2011-02-28 2012-08-29 北京航空航天大学 并发优化的bpmn组合服务执行引擎及方法
CN102710630A (zh) * 2012-05-29 2012-10-03 新华网股份有限公司 一种多线程分片的云上传下载方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1448867A (zh) * 2002-03-30 2003-10-15 深圳市中兴通讯股份有限公司 一种统一访问数据库系统的方法
US20080040334A1 (en) * 2006-08-09 2008-02-14 Gad Haber Operation of Relational Database Optimizers by Inserting Redundant Sub-Queries in Complex Queries
CN101127045A (zh) * 2007-09-25 2008-02-20 中兴通讯股份有限公司 数据库可重复读实现方法、装置及数据库管理系统
US20110184915A1 (en) * 2010-01-28 2011-07-28 Microsoft Corporation Cluster restore and rebuild
CN102650953A (zh) * 2011-02-28 2012-08-29 北京航空航天大学 并发优化的bpmn组合服务执行引擎及方法
CN102541997A (zh) * 2011-11-23 2012-07-04 苏州阔地网络科技有限公司 一种自动分库的数据库执行方法及系统
CN102710630A (zh) * 2012-05-29 2012-10-03 新华网股份有限公司 一种多线程分片的云上传下载方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
温昱晖: "综合自动化系统中分布式数据库的应用", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 *
黄大荣: "集成Spring和Aglets的远程数据库访问技术", 《计算机应用》 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105843820A (zh) * 2015-01-16 2016-08-10 阿里巴巴集团控股有限公司 数据迁移方法及装置
CN105843820B (zh) * 2015-01-16 2019-10-08 阿里巴巴集团控股有限公司 数据迁移方法及装置
CN107787490B (zh) * 2015-05-11 2021-12-07 甲骨文国际公司 分布式数据库网格中的直接连接功能
CN107787490A (zh) * 2015-05-11 2018-03-09 甲骨文国际公司 分布式数据库网格中的直接连接功能
WO2017201970A1 (zh) * 2016-05-21 2017-11-30 乐视控股(北京)有限公司 一种分库数据库系统及其路由方法
CN106095878A (zh) * 2016-06-07 2016-11-09 中国建设银行股份有限公司 基于分库分表的数据库操作装置及方法
CN106095878B (zh) * 2016-06-07 2019-11-19 中国建设银行股份有限公司 基于分库分表的数据库操作装置及方法
CN107066463A (zh) * 2016-10-28 2017-08-18 阿里巴巴集团控股有限公司 数据处理方法、装置和服务器
CN107315761A (zh) * 2017-04-17 2017-11-03 阿里巴巴集团控股有限公司 一种数据更新方法、数据查询方法及装置
CN107315761B (zh) * 2017-04-17 2020-08-04 阿里巴巴集团控股有限公司 一种数据更新方法、数据查询方法及装置
CN107391622A (zh) * 2017-07-06 2017-11-24 联动优势科技有限公司 一种数据访问方法及设备
CN107391622B (zh) * 2017-07-06 2020-12-04 联动优势科技有限公司 一种数据访问方法及设备
CN108595487B (zh) * 2018-03-14 2022-04-29 武汉村助手科技有限公司 一种大数据高并发下访问数据的方法及系统
CN108595487A (zh) * 2018-03-14 2018-09-28 摇了购(武汉)电子商务有限公司 一种大数据高并发下访问数据的方法及系统
CN110046170A (zh) * 2019-04-22 2019-07-23 深圳乐信软件技术有限公司 基于多文件管理的语句执行方法、装置、设备和介质
CN110222064A (zh) * 2019-06-19 2019-09-10 北京字节跳动网络技术有限公司 数据处理方法、装置、电子设备及可读存储介质
CN110716976A (zh) * 2019-10-12 2020-01-21 广州接入信息科技有限公司 基于两种交互场景的分布式数据访问及存储系统
CN111639090A (zh) * 2020-06-03 2020-09-08 山东汇贸电子口岸有限公司 一种数据抽取过程中的数据一致性控制方法及系统

Also Published As

Publication number Publication date
CN103853718B (zh) 2018-05-08

Similar Documents

Publication Publication Date Title
CN103853718A (zh) 分片数据库访问方法及数据库系统
US20220067025A1 (en) Ordering transaction requests in a distributed database according to an independently assigned sequence
CN105630863B (zh) 用于多版本并发提交状态的事务控制块
US7464073B2 (en) Application of queries against incomplete schemas
US8856079B1 (en) Application programming interface for efficient object information gathering and listing
EP3891621A1 (en) System and method for augmenting database applications with blockchain technology
US11868330B2 (en) Method for indexing data in storage engine and related apparatus
CN113868028B (zh) 一种在数据节点上回放日志的方法、数据节点及系统
JP7508541B2 (ja) ブロックチェーンデータ処理の方法、装置、機器及び可読記憶媒体
US20230342353A1 (en) Targeted sweep method for key-value data storage
Kleppmann Designing data-intensive applications
US9390111B2 (en) Database insert with deferred materialization
US20230289331A1 (en) Model generation service for data retrieval
CN105518669A (zh) 数据模型改变管理
WO2021237190A1 (en) Distributed transaction execution in distributed databases
US20070174329A1 (en) Presenting a reason why a secondary data structure associated with a database needs rebuilding
US20180060540A1 (en) Medidata clinical trial system integration with oracle coding system
US11188228B1 (en) Graphing transaction operations for transaction compliance analysis
EP3082050A1 (en) Mass data fusion storage method and system
US11392562B2 (en) Hybrid client transaction mode for key value store
US20080040312A1 (en) Programmatic retrieval of tabular data within a cell of a query result
US7516144B2 (en) Method and system for re-population of data in a database
Cobbs Persistence Programming: Are we doing this right?
CN110647518A (zh) 一种数据源融合计算方法、组件及装置
WO2024082693A1 (zh) 数据处理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160914

Address after: East Building 11, 100195 Beijing city Haidian District xingshikou Road No. 65 west Shan creative garden district 1-4 four layer of 1-4 layer

Applicant after: Beijing Jingdong Shangke Information Technology Co., Ltd.

Address before: 201203 Shanghai city Pudong New Area Zu Road No. 295 Room 102

Applicant before: Niuhai Information Technology (Shanghai) Co., Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201106

Address after: No.8-6, Putou South Road, Haicang District, Xiamen City, Fujian Province

Patentee after: Xiamen xinjianfu e-commerce Co., Ltd

Address before: East Building 11, 100195 Beijing city Haidian District xingshikou Road No. 65 west Shan creative garden district 1-4 four layer of 1-4 layer

Patentee before: BEIJING JINGDONG SHANGKE INFORMATION TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210512

Address after: 361000 No.8, Putou South Road, Haicang District, Xiamen City, Fujian Province

Patentee after: Xiamen Jianfu Chain Management Co.,Ltd.

Address before: No.8-6, Putou South Road, Haicang District, Xiamen City, Fujian Province 361022

Patentee before: Xiamen xinjianfu e-commerce Co., Ltd