CN114443650A - 按照时间分库分表的方法与装置 - Google Patents
按照时间分库分表的方法与装置 Download PDFInfo
- Publication number
- CN114443650A CN114443650A CN202111665197.7A CN202111665197A CN114443650A CN 114443650 A CN114443650 A CN 114443650A CN 202111665197 A CN202111665197 A CN 202111665197A CN 114443650 A CN114443650 A CN 114443650A
- Authority
- CN
- China
- Prior art keywords
- table structure
- corresponding table
- established
- request information
- database
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种按照时间分库分表的方法及装置,所述方法包括:获取对数据库操作的请求信息;所述请求信息用于对数据库进行增加操作、查找操作、删改操作或者改写操作中的至少一种;在所述请求信息用于表征增加操作时,判断是否已经建立对应的表结构;在确定没有对应的表结构时,新建对应的表结构,并在新建的对应的表结构中执行增加操作;在确定已经建立对应的表结构时,在已经建立的对应的表结构中执行增加操作。本发明只有请求信息用于表征增加操作时,才会动态生成对应的表结构,大大方便了存储和管理机制,节约成本,降低配置复杂度,提升效率。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种按照时间分库分表的方法与装置。
背景技术
以往只用单机数据库就够了,随后面对越来越多的请求,将数据库的写操作和读操作进行分离,使用多个从库副本(Slaver Replication)负责读,使用主库(Master)负责写,从库从主库同步更新数据,保持数据一致。架构上就是数据库主从同步。从库可以水平扩展,所以更多的读请求不成问题。但是当用户量级上来后,写请求越来越多。加一个Master是不能解决问题的,因为数据要保存一致性,写操作需要两个master之间同步,相当于是重复了,而且更加复杂。
随着业务数据的发展,单个数据库越来越难以支撑庞大的数据量,然后分表分库(sharding)脱颖而出,有mycat,sharding-jdbc等中间件。
目前已有的专利,公开号:CN105488050A,名称:一种按照时间分库分表的方法和系统,该专利方案公开了一种数据库多索引方法、装置及系统。通过建立关联索引表,使用关联索引表存储新索引关键字与主索引关键字的对应关系,当使用新索引关键字作为主索引关键字进行查询时,根据新索引关键字在关联索引表中查找到对应的主索引关键字,根据对应的主索引关键字路由到分库分表,完成数据的查询。通过使用关联索引表来代替使用新索引关键字进行分库分表,从而避免重新记录一份或多份数据,大大降低了数据规模和工作量。该专利主要集中在利用分库分表的节点上,没有考虑分库分表的生成机制,不能降低配置复杂度,难以提升效率。
发明内容
有鉴于此,本公开的实施例的目的在于提供一种按照时间分库分表的方法及装置,能够降低配置复杂度,难以提升效率。
根据本公开的实施例,提供一种风力发电机组的控制方法,所述控制方法包括:获取对数据库操作的请求信息;所述请求信息用于对数据库进行增加操作、查找操作、删改操作或者改写操作中的至少一种;在所述请求信息用于表征增加操作时,判断是否已经建立对应的表结构;在确定没有对应的表结构时,新建对应的表结构,并在新建的对应的表结构中执行增加操作;在确定已经建立对应的表结构时,在已经建立的对应的表结构中执行增加操作。
进一步地,在所述获取对数据库操作的请求信息的步骤之后还包括:在所述请求信息用于表征查找操作、删改操作或者改写操作时,利用预先建立的空表结构进行所述请求信息对应的查找操作、删改操作或者改写操作。
进一步地,所述的按照时间分库分表的方法还包括:所述空表结构在数据库服务启动时建立。
进一步地,在所述新建对应的表结构的步骤之后还包括:更新所述数据库的配置文件。
根据本公开的另一实施例,提供一种按照时间分库分表的装置,包括:
获取单元,用于获取对数据库操作的请求信息;所述请求信息用于对数据库进行增加操作、查找操作、删改操作或者改写操作中的至少一种;
判断单元,用于在所述请求信息用于表征增加操作时,判断是否已经建立对应的表结构;
处理单元,用于在确定没有对应的表结构时,新建对应的表结构,并在新建的对应的表结构中执行增加操作;或者在确定已经建立对应的表结构时,在已经建立的对应的表结构中执行增加操作。
进一步地,所述处理单元,还用于在所述请求信息用于表征查找操作、删改操作或者改写操作时,利用预先建立的空表结构进行所述请求信息对应的查找操作、删改操作或者改写操作。
进一步地,所述的按照时间分库分表的装置还包括:所述空表结构在数据库服务启动时建立。
进一步地,所述的按照时间分库分表的装置还包括:更新单元,用于在所述处理单元新建对应的表结构之后更新所述数据库的配置文件。
根据本公开的实施例,提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序在被处理器执行时实现如上所述的方法。
根据本公开的实施例,提供一种计算装置,所述计算装置包括:处理器;存储器,存储有计算机程序,当所述计算机程序被处理器执行时,实现如上所述的控制方法。
采用根据本公开的实施例的按照时间分库分表的方法及装置,通过在对数据库操作的请求信息用于表征增加操作且在确定没有对应的表结构时,动态生成对应的表结构,并在新建的对应的表结构中执行增加操作,相较于以往的方案大多是提前生成表,浪费存储空间,大大方便了存储和管理机制,节约成本,降低配置复杂度,提升效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是根据本公开的实施例一的按照时间分库分表的方法的流程图。
图2是根据本公开的实施例二的按照时间分库分表的方法的流程图。
图3是根据本公开的实施例三的按照时间分库分表的装置的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
图1是根据本公开的实施例一的按照时间分库分表的方法的流程图。如图1所示:
步骤S101,获取对数据库操作的请求信息;所述请求信息用于对数据库进行增加操作、查找操作、删改操作或者改写操作中的至少一种。
步骤S102,在所述请求信息用于表征增加操作时,判断是否已经建立对应的表结构;
步骤S103,在确定没有对应的表结构时,新建对应的表结构,并在新建的对应的表结构中执行增加操作;
步骤S104,在确定已经建立对应的表结构时,在已经建立的对应的表结构中执行增加操作。
本实施例通过在对数据库操作的请求信息用于表征增加操作且在确定没有对应的表结构时,动态生成对应的表结构,并在新建的对应的表结构中执行增加操作,相较于以往的方案大多是提前生成表,浪费存储空间,大大方便了存储和管理机制,节约成本,降低配置复杂度,提升效率。
图2是根据本公开的实施例二的按照时间分库分表的方法的流程图。图2是图1所示实施例的优选实施方式,如图2所示,具体包括:
步骤201、首先获取对数据库操作的请求信息。
步骤202、判断所述请求信息是否用于表征增加操作时。
步骤203、在所述请求信息用于表征增加操作时,判断是否已经建立对应的表结构。
步骤204、在确定没有对应的表结构时,新建对应的表结构,更新所述数据库的配置文件,并在新建的对应的表结构中执行增加操作。
步骤205、在确定已经建立对应的表结构时,在已经建立的对应的表结构中执行增加操作。
步骤206、在所述请求信息用于表征查找操作、删改操作或者改写操作时,利用预先建立的空表结构进行所述请求信息对应的查找操作、删改操作或者改写操作。具体操作时,所述空表结构在数据库服务启动时建立。
也就是说,首先在数据库设置一张空表,不进行任何写操作。随着时间的推移,当某个时刻发现写操作时,根据当前时间生成表,然后更新缓存。这时候服务就认为这张表是存在的。
本实施例在sharding-jdbc的基础上,增加按需加载的扩容机制,只有在对数据库进行增加操作(insert操作)时,才会动态生成表,按需创建表结构,也就是说业务量大表就大,没有访问表就不会创建,用多少就生成多少;对于查询,删除以及更改,提供一张默认空表即可,大大方便了存储和管理机制,因为有一张空表,所以任何不在该时间区间内的查、删、修改,都不会受到影响,也不会降低查询,删除以及更改的处理效率。
图3是根据本公开的实施例的按照时间分库分表的装置的框图。如图3所示,该按照时间分库分表的装置可以包括:
获取单元301,用于获取对数据库操作的请求信息;所述请求信息用于对数据库进行增加操作、查找操作、删改操作或者改写操作中的至少一种;
判断单元302,用于在所述请求信息用于表征增加操作时,判断是否已经建立对应的表结构;
处理单元303,用于在确定没有对应的表结构时,新建对应的表结构,并在新建的对应的表结构中执行增加操作;或者在确定已经建立对应的表结构时,在已经建立的对应的表结构中执行增加操作。
优选地,所述处理单元303,还用于在所述请求信息用于表征查找操作、删改操作或者改写操作时,利用预先建立的空表结构进行所述请求信息对应的查找操作、删改操作或者改写操作。
优选地,所述的按照时间分库分表的装置还包括:所述空表结构在数据库服务启动时建立。
优选地,所述的按照时间分库分表的装置还包括:更新单元304,用于在所述处理单元新建对应的表结构之后更新所述数据库的配置文件。
本实施例在sharding-jdbc的基础上,增加按需加载的扩容机制,只有在对数据库进行增加操作(insert操作)时,才会动态生成表,按需创建表结构,也就是说业务量大表就大,没有访问表就不会创建,用多少就生成多少;对于查询,删除以及更改,提供一张默认空表即可,大大方便了存储和管理机制,因为有一张空表,所以任何不在该时间区间内的查、删、修改,都不会受到影响,也不会降低查询,删除以及更改的处理效率。
本发明还提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现上述按照时间分库分表的方法的步骤。
本发明还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述按照时间分库分表的方法的步骤。
该介质以及计算机设备具有上述按照时间分库分表的方法相应的技术效果。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种按照时间分库分表的方法,其特征在于,包括:
获取对数据库操作的请求信息;所述请求信息用于对数据库进行增加操作、查找操作、删改操作或者改写操作中的至少一种;
在所述请求信息用于表征增加操作时,判断是否已经建立对应的表结构;
在确定没有对应的表结构时,新建对应的表结构,并在新建的对应的表结构中执行增加操作;
在确定已经建立对应的表结构时,在已经建立的对应的表结构中执行增加操作。
2.根据权利要求1所述的按照时间分库分表的方法,其特征在于,在所述获取对数据库操作的请求信息的步骤之后还包括:
在所述请求信息用于表征查找操作、删改操作或者改写操作时,利用预先建立的空表结构进行所述请求信息对应的查找操作、删改操作或者改写操作。
3.根据权利要求2所述的按照时间分库分表的方法,其特征在于,还包括:所述空表结构在数据库服务启动时建立。
4.根据权利要求1-3中任一项所述的按照时间分库分表的方法,其特征在于,在所述新建对应的表结构的步骤之后还包括:
更新所述数据库的配置文件。
5.一种按照时间分库分表的装置,其特征在于,包括:
获取单元,用于获取对数据库操作的请求信息;所述请求信息用于对数据库进行增加操作、查找操作、删改操作或者改写操作中的至少一种;
判断单元,用于在所述请求信息用于表征增加操作时,判断是否已经建立对应的表结构;
处理单元,用于在确定没有对应的表结构时,新建对应的表结构,并在新建的对应的表结构中执行增加操作;或者在确定已经建立对应的表结构时,在已经建立的对应的表结构中执行增加操作。
6.根据权利要求5所述的按照时间分库分表的装置,其特征在于,所述处理单元,还用于在所述请求信息用于表征查找操作、删改操作或者改写操作时,利用预先建立的空表结构进行所述请求信息对应的查找操作、删改操作或者改写操作。
7.根据权利要求6所述的按照时间分库分表的装置,其特征在于,还包括:所述空表结构在数据库服务启动时建立。
8.根据权利要求7所述的按照时间分库分表的装置,其特征在于,还包括:更新单元,用于在所述处理单元新建对应的表结构之后更新所述数据库的配置文件。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-4任一项所述的按照时间分库分表的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-4任一项所述的按照时间分库分表的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111665197.7A CN114443650A (zh) | 2021-12-31 | 2021-12-31 | 按照时间分库分表的方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111665197.7A CN114443650A (zh) | 2021-12-31 | 2021-12-31 | 按照时间分库分表的方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114443650A true CN114443650A (zh) | 2022-05-06 |
Family
ID=81366768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111665197.7A Pending CN114443650A (zh) | 2021-12-31 | 2021-12-31 | 按照时间分库分表的方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114443650A (zh) |
-
2021
- 2021-12-31 CN CN202111665197.7A patent/CN114443650A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9262458B2 (en) | Method and system for dynamically partitioning very large database indices on write-once tables | |
US8527556B2 (en) | Systems and methods to update a content store associated with a search index | |
WO2020234719A1 (en) | Indexing for evolving large-scale datasets in multi-master hybrid transactional and analytical processing systems | |
US9418094B2 (en) | Method and apparatus for performing multi-stage table updates | |
CN104750773A (zh) | 基于重构与更新比较的索引维护 | |
CN111143368A (zh) | 一种关系型数据库数据对比方法及系统 | |
CN105373541A (zh) | 数据库的数据操作请求的处理方法和系统 | |
US20050102326A1 (en) | Method and apparatus for performing conflict resolution in database logging | |
CN105426373A (zh) | 一种数据库同步方法与设备 | |
WO2017156855A1 (en) | Database systems with re-ordered replicas and methods of accessing and backing up databases | |
CN115114294A (zh) | 数据库存储模式的自适应方法、装置、计算机设备 | |
US20080005077A1 (en) | Encoded version columns optimized for current version access | |
JP2001306372A (ja) | 文書管理方法およびその方法を実施するためのプログラムを記憶した記憶媒体 | |
JP4951138B2 (ja) | データベースの管理方法 | |
CN114840487A (zh) | 分布式文件系统的元数据管理方法和装置 | |
CN114048269A (zh) | 在分布式数据库中同步更新元数据的方法及装置 | |
CN108256019A (zh) | 数据库主键生成方法、装置、设备及其存储介质 | |
EP2933739A1 (en) | Database management method | |
CN113032408B (zh) | 数据处理方法、系统及设备 | |
CN114443650A (zh) | 按照时间分库分表的方法与装置 | |
CN113886505B (zh) | 一种基于搜索引擎和关系型数据库实现动态建模的管理系统 | |
CN114816247A (zh) | 一种逻辑数据获取方法及装置 | |
KR102214697B1 (ko) | 데이터베이스 관리 시스템에서 데이터 저장을 위한 공간 관리를 제공하는 컴퓨터 프로그램 | |
KR20220099745A (ko) | 지리공간 블록체인 데이터 검색을 위한 공간 분할 기반의 트리 인덱싱 및 질의어 처리 방법 및 장치 | |
CN111782655A (zh) | 一种基于地理分区的数据库跨区域数据就近访问方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |