CN118035229A - 一种数据库分表方法、装置、电子设备及存储介质 - Google Patents
一种数据库分表方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN118035229A CN118035229A CN202211409241.2A CN202211409241A CN118035229A CN 118035229 A CN118035229 A CN 118035229A CN 202211409241 A CN202211409241 A CN 202211409241A CN 118035229 A CN118035229 A CN 118035229A
- Authority
- CN
- China
- Prior art keywords
- data
- table name
- time interval
- set time
- belongs
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000004048 modification Effects 0.000 claims description 33
- 238000012986 modification Methods 0.000 claims description 33
- 230000015654 memory Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012217 deletion Methods 0.000 claims description 12
- 230000037430 deletion Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 11
- 238000000638 solvent extraction Methods 0.000 description 4
- 230000004075 alteration Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库分表方法、装置、电子设备及存储介质,用以解决了现有的数据库分表程序复杂、分表效率较低的问题,所述方法,包括:当接收到客户端发送的写数据请求时,利用Mybatis‑Plus插件的拦截接口拦截写数据请求,写数据请求中携带有待写数据、待写数据对应的表名和当前时间戳;若确定数据库中不存在当前时间戳归属的设定时间区间的待写数据对应的表名对应的表,则基于待写数据对应的表名对应的预设的表模板创建当前设定时间区间的表,并记录当前设定时间区间、表名与表的对应关系;将待写数据写入创建的表中。
Description
技术领域
本申请涉及网络技术领域,尤其涉及一种数据库分表方法、装置、电子设备及存储介质。
背景技术
在使用数据库存储数据时,随着数据量越来越大,通常将数据库的写操作和读操作进行分离,使用主库(Master)负责写数据,使用多个从库副本(Slaver Replication)负责读数据,从库从主库同步更新数据以保持数据一致,也就是数据库的主从同步。从库可以水平扩展,以满足更多的读请求,而当用户量级上升,写请求越来越多时,如果增加一个主库,为保持数据一致性,写数据需要两个主库之间的数据进行同步,这样结构会变得更加复杂,因此,需要对数据库进行分库分表。
现有的数据库分库分表插件有mycat、sharding-jdbc等,然而,这些分库分表插件在分表时需要拦截sql语句,对sql语句进行改写,从而,使得分表程序复杂。并且,数据库在建表时,一般在数据库服务启动时即根据不同业务需求创建好各种表,再配置文件对各个表进行描述,这样使得表的配置较为复杂,分表效率较低。Mybatis-plus是一种分页插件,可以快捷地将数据库中的数据进行分页,然而其不支持分表功能。
因此,亟需一种改进的方法简化数据库分表的程序,提高分表效率。
发明内容
为了解决现有的数据库分表程序复杂、分表效率较低的问题,本申请实施例提供了一种数据库分表方法、装置、电子设备及存储介质。
第一方面,本申请实施例提供了一种数据库分表方法,包括:
当接收到客户端发送的写数据请求时,利用Mybatis-Plus插件的拦截接口拦截所述写数据请求,所述写数据请求中携带有待写数据、所述待写数据对应的表名和当前时间戳;
若确定所述数据库中不存在所述当前时间戳归属的设定时间区间的所述表名对应的表,则基于所述表名对应的预设的表模板创建当前设定时间区间的表,并记录所述当前设定时间区间、所述表名与表的对应关系;
将所述待写数据写入创建的所述表中。
在一种可能的实施方式中,所述方法,还包括:
若确定所述数据库中存在所述当前时间戳归属的设定时间区间的所述表名对应的表,则将所述待写数据写入所述设定时间区间的所述表名对应的表中。
在一种可能的实施方式中,所述方法,还包括:
利用Mybatis-Plus插件的拦截接口拦截所述客户端发送的数据删除请求,所述数据删除请求中携带有待删除数据、待删除数据的删除时间条件和待删除数据所属的表名;
基于所述删除时间条件匹配对应设定时间区间的所述待删除数据所属的表名对应的表;
从匹配到的所述待删除数据所属的表名对应的表中删除所述待删除数据。
在一种可能的实施方式中,所述方法,还包括:
利用Mybatis-Plus插件的拦截接口拦截所述客户端发送的数据修改请求,所述修改请求中包括待修改数据、待修改数据的修改时间条件和所述待修改数据所属的表名;
基于所述修改时间条件匹配对应设定时间区间的所述待修改数据所属的表名对应的表;
从匹配到的所述待修改数据所属表名对应的表中对所述待修改数据进行修改。
在一种可能的实施方式中,所述方法,还包括:
利用Mybatis-Plus插件的拦截接口拦截所述客户端发送的数据查询请求,所述数据查询请求中携带有待查询数据、待查询数据的查询时间条件和待查询数据所属的表名;
基于所述查询时间条件匹配对应设定时间区间的所述待查询数据所属的表名对应的表;
展示匹配到的所述待查询数据所属的表名对应的表中的所述待查询数据。
第二方面,本申请实施例提供了一种数据库分表装置,包括:
拦截单元,用于当接收到客户端发送的写数据请求时,利用Mybatis-Plus插件的拦截接口拦截所述写数据请求,所述写数据请求中携带有待写数据、所述待写数据对应的表名和当前时间戳;
创建单元,用于若确定所述数据库中不存在所述当前时间戳归属的设定时间区间的所述表名对应的表,则基于所述表名对应的预设的表模板创建当前设定时间区间的表,并记录所述当前设定时间区间、所述表名与表的对应关系;
写单元,用于将所述待写数据写入创建的所述表中。
在一种可能的实施方式中,所述写单元,还用于若确定所述数据库中存在所述当前时间戳归属的设定时间区间的所述表名对应的表,则将所述待写数据写入所述设定时间区间的所述表名对应的表中。
在一种可能的实施方式中,所述拦截单元,还用于利用Mybatis-Plus插件的拦截接口拦截所述客户端发送的数据删除请求,所述数据删除请求中携带有待删除数据、待删除数据的删除时间条件和待删除数据所属的表名;
所述装置,还包括:
第一匹配单元,用于基于所述删除时间条件匹配对应设定时间区间的所述待删除数据所属的表名对应的表;
删除单元,用于从匹配到的所述待删除数据所属的表名对应的表中删除所述待删除数据。
在一种可能的实施方式中,所述拦截单元,还用于利用Mybatis-Plus插件的拦截接口拦截所述客户端发送的数据修改请求,所述修改请求中包括待修改数据、待修改数据的修改时间条件和所述待修改数据所属的表名;
所述装置,还包括:
第二匹配单元,用于基于所述修改时间条件匹配对应设定时间区间的所述待修改数据所属的表名对应的表;
修改单元,用于从匹配到的所述待修改数据所属表名对应的表中对所述待修改数据进行修改。
在一种可能的实施方式中,所述拦截单元,还用于利用Mybatis-Plus插件的拦截接口拦截所述客户端发送的数据查询请求,所述数据查询请求中携带有待查询数据、待查询数据的查询时间条件和待查询数据所属的表名;
所述装置,还包括:
第三匹配单元,用于基于所述查询时间条件匹配对应设定时间区间的所述待查询数据所属的表名对应的表;
查询单元,用于展示匹配到的所述待查询数据所属的表名对应的表中的所述待查询数据。
第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请所述的数据库分表方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请所述的数据库分表方法中的步骤。
本申请的有益效果如下:
本申请实施例提供的数据库分表方法、装置、电子设备及存储介质,当接收到客户端发送的写数据请求时,利用Mybatis-Plus插件的拦截接口拦截该写数据请求,写数据请求中携带有待写数据、待写数据对应的表名和当前时间戳,若确定数据库中不存在当前时间戳归属的设定时间区间的待写数据对应的表名所对应的表,则基于该表名对应的预设的表模板创建当前设定时间区间的表,并记录当前设定时间区间、表名与表的对应关系,将待写数据写入创建的表中,相比于现有技术,本申请中预先建立表名对应的预设的表模板,当接收到客户端发送的写数据请求时,通过Mybatis-Plus插件的拦截接口拦截写数据请求,若数据库中未建立过当前时间戳归属的设定时间区间的该表名对应的表,则可基于当前时间和预设表模板生成一个当前设定时间区间的表,并将待写数据写入创建的表中,从而,自动完成数据库分表及写数据,在简化了数据库分表的程序的同时,提高了分表效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的数据库分表方法的实施流程示意图;
图2为本申请实施例提供的在数据库中删除数据的实施流程示意图;
图3为本申请实施例提供的在数据库中修改数据的实施流程示意图;
图4为本申请实施例提供的在数据库中查询数据的实施流程示意图;
图5为本申请实施例提供的数据库分表装置的结构示意图;
图6为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了解决背景技术中的问题,本申请实施例提供了一种数据库分表方法、装置、电子设备及存储介质。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示,其为本申请实施例提供的数据库分表方法的实施流程示意图,该数据库分表方法可以应用于数据库中,具体可以包括以下步骤:
S11、当接收到客户端发送的写数据请求时,利用Mybatis-Plus插件的拦截接口拦截所述写数据请求,写数据请求中携带有待写数据、待写数据对应的表名和当前时间戳。
具体实施时,客户端可通过insert(插入)语句将写数据请求发送至数据库,insert语句中至少包括待写数据、待写数据对应的表名和当前时间戳。
当数据库接收到客户端发送的insert语句时,可利用Mybatis-Plus插件的持久层Mapper拦截接口拦截insert语句,其中,也可以使用Mybatis插件,本申请实施例对此不作限定。
S12、若确定数据库中不存在当前时间戳归属的设定时间区间的待写数据对应的表名对应的表,则基于表名对应的预设的表模板创建当前设定时间区间的表,并记录当前设定时间区间、表名与表的对应关系。
具体实施时,可在数据库中根据业务需求预先建立若干预设的表模板,并存储表名和预设的表模板的对应关系,每一预设的表模板中包括描述该表属性的各字段,但是不进行任何数据的写、读、查询、删除操作,也即一个表模板是一张描述了表的属性的空表。例如,某一个预设的表模板包括以下描述表的属性的字段:“姓名”、“性别”、“邮箱”、“联系电话”等字段。
在具体实施时,在拦截客户端发送的insert语句后,根据insert语句中的当前时间戳匹配其归属的设定时间区间的待写数据对应的表名所对应的表,如果数据库中未建立该表,则按照该表名对应的预设的表模板创建一个当前设定时间区间的表,并记录当前设定时间区间、表名与表的对应关系。其中,设定时间区间可自行进行设置,例如可设置为1个月或一个星期等,本申请实施例对此不作限定。
S13、将待写数据写入创建的表中。
下面举一实例进行说明,假设设定时间区间设置为1个月,若当前月有待写数据时,则建立一张当前月份对应的表,若当前月无待写数据,则当前月无需建立表,如果当前时间戳为2022年11月7日,并且这是2022年11月份的针对待写数据对应的表名所对应的表的第一条待写数据,也就是说,待写数据对应的表名所对应的表在2022年11份的表还未建立,则按照该表名对应的预设的表模板建立2022年11月份该表名所对应的表,将待写数据写入新建立的该2022年11月份的表中进行更新并缓存。这样,数据库可按需创建表,若当前设定时间区间业务量大时,表的量也大,当前设定时间区间无待写数据时,就不会创建新的表,需要用多少表就生成多少,有效提高了数据库对表的管理和对数据空间的合理利用,在简化了分表的复杂度的同时,提高了分表效率。
若确定数据库中存在当前时间戳归属的设定时间区间的待写数据对应的表名对应的表,则将待写数据写入设定时间区间的待写数据对应的表名对应的表中。
假设当前时间戳为2022年11月8日,并且这是2022年11月份的针对待写数据对应的表名所对应的表的第二条待写数据,也就是说,待写数据对应的表名所对应的表在2022年11份的表已经建立,则按照表名匹配已建立的2022年11月份的表,将待写数据写入该2022年11月份的表中。
在实施时,数据库若接收到客户端发送的数据删除请求时,可按照如图2所示的流程删除数据,包括以下步骤:
S21、利用Mybatis-Plus插件的拦截接口拦截客户端发送的数据删除请求,数据删除请求中携带有待删除数据、待删除数据的删除时间条件和待删除数据所属的表名。
具体实施时,当数据库接收到客户端发送的数据删除请求时,利用Mybatis-Plus插件的Mapper拦截接口拦截该数据删除请求。其中,数据删除请求中携带有待删除数据、待删除数据的删除时间条件和待删除数据所属的表名,例如,删除2022年3月表名为A1的一条数据B。
S22、基于删除时间条件匹配对应设定时间区间的待删除数据所属的表名对应的表。
延续上例,从数据库中已建的表中匹配2022年3月表名为A1的表。
S23、从匹配到的待删除数据所属的表名对应的表中删除待删除数据。
本步骤中,从匹配到的2022年3月表名为A1的表中删除数据B。
在实施时,数据库若接收到客户端发送的数据修改请求时,可按照如图3所示的流程修改数据,包括以下步骤:
S31、利用Mybatis-Plus插件的拦截接口拦截客户端发送的数据修改请求,修改请求中包括待修改数据、待修改数据的修改时间条件和所述待修改数据所属的表名。
具体实施时,当数据库接收到客户端发送的数据修改请求(如UpdateByld语句,修改一条数据)时,则利用Mybatis-Plus插件的Mapper拦截接口拦截客户端发送的数据修改请求,修改请求中包括待修改数据、待修改数据的修改时间条件和待修改数据所属的表名,还包括待修改数据需修改成的目标数据。例如,将2022年4月表名为A2的一条数据C修改为D。
S32、基于修改时间条件匹配对应设定时间区间的待修改数据所属的表名对应的表。
本步骤中,从数据库中匹配2022年4月表名为A2的表。
S33、从匹配到的待修改数据所属表名对应的表中对待修改数据进行修改。
本步骤中,将匹配到的2022年4月表名为A2的表的数据C修改为D。
在实施时,数据库若接收到客户端发送的数据查询请求时,可按照如图4所示的流程查询数据,包括以下步骤:
S41、利用Mybatis-Plus插件的拦截接口拦截客户端发送的数据查询请求,数据查询请求中携带有待查询数据、待查询数据的查询时间条件和待查询数据所属的表名。
具体实施时,当数据库接收到客户端发送的数据查询请求(如getone(取一条数据并返回))时,利用Mybatis-Plus插件的Mapper拦截接口拦截客户端发送的数据查询请求,其中,数据查询请求中携带有待查询数据、待查询数据的查询时间条件和待查询数据所属的表名。例如,查询2022年5月表名为A3的表中的数据E。
S42、基于查询时间条件匹配对应设定时间区间的待查询数据所属的表名对应的表。
本步骤中,从数据库中匹配2022年5月表名为A3的表。
S43、展示匹配到的待查询数据所属的表名对应的表中的待查询数据。
本步骤中,可基于Mybatis-Plus插件的分页功能对匹配到的待查询数据所属表名对应的表进行分页展示,以使客户端用户查看待查询数据,并可以直接返回该待查询数据。
延续上例,将数据库中匹配2022年5月表名为A3的表进行分页展示,以使客户端用户可以查看待查询数据E,并向客户端直接返回待查询数据E。
本申请实施例中,在Mybatis-Plus插件的基础上,通过持久层Mapper拦截接口,根据时间条件实现数据库的自动分片(即分表)及增、删、改、查功能,分表通过insert语句触发,无需手动创建,并且优化了多个表的分页功能,大大提高了数据库的性能,便于数据库的存储和管理。
而且,由于数据库中预先存储有各个表的表模板,也即各个表对应的一张空表,因此,任何不在设定时间区间内的查、删、修改操作都不会受到影响,不会降低数据库的效率。由于基于Mybatis-Plus插件的Mapper拦截接口的拦截功能进行分表,无需引入第三方分表插件即可完成数据库的自动分表,对当前仅具有分页功能的Mybatis-Plus插件进行了改进,实现了分表的功能。
本申请实施例提供的数据库分表方法,当数据库接收到客户端发送的写数据请求时,利用Mybatis-Plus插件的Mapper拦截接口拦截该写数据请求,写数据请求中携带有待写数据、待写数据对应的表名和当前时间戳,若确定数据库中不存在当前时间戳归属的设定时间区间的待写数据对应的表名所对应的表,则基于该表名对应的预设的表模板创建当前设定时间区间的表,并记录当前设定时间区间、表名与表的对应关系,将待写数据写入创建的表中,相比于现有技术,本申请中预先建立表名对应的预设的表模板,当接收到客户端发送的写数据请求时,通过Mybatis-Plus插件的Mapper拦截接口拦截写数据请求,若数据库中未建立过当前时间戳归属的设定时间区间的该表名对应的表,则可基于当前时间和预设表模板生成一个当前设定时间区间的表,并将待写数据写入创建的表中,从而,自动完成数据库分表及写数据,在简化了数据库分表的程序的同时,提高了分表效率。
基于同一发明构思,本申请实施例还提供了一种数据库分表装置,由于上述数据库分表装置解决问题的原理与上述数据库分表方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图5所示,其为本申请实施例提供的数据库分表装置的结构示意图,可以包括:
拦截单元51,用于当接收到客户端发送的写数据请求时,利用Mybatis-Plus插件的拦截接口拦截所述写数据请求,所述写数据请求中携带有待写数据、所述待写数据对应的表名和当前时间戳;
创建单元52,用于若确定所述数据库中不存在所述当前时间戳归属的设定时间区间的所述表名对应的表,则基于所述表名对应的预设的表模板创建当前设定时间区间的表,并记录所述当前设定时间区间、所述表名与表的对应关系;
写单元53,用于将所述待写数据写入创建的所述表中。
在一种可能的实施方式中,所述写单元53,还用于若确定所述数据库中存在所述当前时间戳归属的设定时间区间的所述表名对应的表,则将所述待写数据写入所述设定时间区间的所述表名对应的表中。
在一种可能的实施方式中,所述拦截单元51,还用于利用Mybatis-Plus插件的拦截接口拦截所述客户端发送的数据删除请求,所述数据删除请求中携带有待删除数据、待删除数据的删除时间条件和待删除数据所属的表名;
所述装置,还包括:
第一匹配单元,用于基于所述删除时间条件匹配对应设定时间区间的所述待删除数据所属的表名对应的表;
删除单元,用于从匹配到的所述待删除数据所属的表名对应的表中删除所述待删除数据。
在一种可能的实施方式中,所述拦截单元51,还用于利用Mybatis-Plus插件的拦截接口拦截所述客户端发送的数据修改请求,所述修改请求中包括待修改数据、待修改数据的修改时间条件和所述待修改数据所属的表名;
所述装置,还包括:
第二匹配单元,用于基于所述修改时间条件匹配对应设定时间区间的所述待修改数据所属的表名对应的表;
修改单元,用于从匹配到的所述待修改数据所属表名对应的表中对所述待修改数据进行修改。
在一种可能的实施方式中,所述拦截单元51,还用于利用Mybatis-Plus插件的拦截接口拦截所述客户端发送的数据查询请求,所述数据查询请求中携带有待查询数据、待查询数据的查询时间条件和待查询数据所属的表名;
所述装置,还包括:
第三匹配单元,用于基于所述查询时间条件匹配对应设定时间区间的所述待查询数据所属的表名对应的表;
查询单元,用于展示匹配到的所述待查询数据所属的表名对应的表中的所述待查询数据。
基于同一技术构思,本申请实施例还提供了一种电子设备600,参照图6所示,电子设备600用于实施上述方法实施例记载的数据库分表方法,该实施例的电子设备600可以包括:存储器601、处理器602以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如数据库分表程序。所述处理器执行所述计算机程序时实现上述各个数据库分表方法实施例中的步骤。
本申请实施例中不限定上述存储器601、处理器602之间的具体连接介质。本申请实施例在图6中以存储器601、处理器602之间通过总线603连接,总线603在图6中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线603可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器601可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器601也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器601是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器601可以是上述存储器的组合。
处理器602,用于实现本申请实施例提供的数据库分表方法。
本申请实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。
在一些可能的实施方式中,本申请提供的数据库分表方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的数据库分表方法中的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种数据库分表方法,其特征在于,包括:
当接收到客户端发送的写数据请求时,利用Mybatis-Plus插件的拦截接口拦截所述写数据请求,所述写数据请求中携带有待写数据、所述待写数据对应的表名和当前时间戳;
若确定所述数据库中不存在所述当前时间戳归属的设定时间区间的所述表名对应的表,则基于所述表名对应的预设的表模板创建当前设定时间区间的表,并记录所述当前设定时间区间、所述表名与表的对应关系;
将所述待写数据写入创建的所述表中。
2.如权利要求1所述的方法,其特征在于,还包括:
若确定所述数据库中存在所述当前时间戳归属的设定时间区间的所述表名对应的表,则将所述待写数据写入所述设定时间区间的所述表名对应的表中。
3.如权利要求1所述的方法,其特征在于,还包括:
利用Mybatis-Plus插件的拦截接口拦截所述客户端发送的数据删除请求,所述数据删除请求中携带有待删除数据、待删除数据的删除时间条件和待删除数据所属的表名;
基于所述删除时间条件匹配对应设定时间区间的所述待删除数据所属的表名对应的表;
从匹配到的所述待删除数据所属的表名对应的表中删除所述待删除数据。
4.如权利要求1所述的方法,其特征在于,还包括:
利用Mybatis-Plus插件的拦截接口拦截所述客户端发送的数据修改请求,所述修改请求中包括待修改数据、待修改数据的修改时间条件和所述待修改数据所属的表名;
基于所述修改时间条件匹配对应设定时间区间的所述待修改数据所属的表名对应的表;
从匹配到的所述待修改数据所属表名对应的表中对所述待修改数据进行修改。
5.如权利要求1所述的方法,其特征在于,还包括:
利用Mybatis-Plus插件的拦截接口拦截所述客户端发送的数据查询请求,所述数据查询请求中携带有待查询数据、待查询数据的查询时间条件和待查询数据所属的表名;
基于所述查询时间条件匹配对应设定时间区间的所述待查询数据所属的表名对应的表;
展示匹配到的所述待查询数据所属的表名对应的表中的所述待查询数据。
6.一种数据库分表装置,其特征在于,包括:
拦截单元,用于当接收到客户端发送的写数据请求时,利用Mybatis-Plus插件的拦截接口拦截所述写数据请求,所述写数据请求中携带有待写数据、所述待写数据对应的表名和当前时间戳;
创建单元,用于若确定所述数据库中不存在所述当前时间戳归属的设定时间区间的所述表名对应的表,则基于所述表名对应的预设的表模板创建当前设定时间区间的表,并记录所述当前设定时间区间、所述表名与表的对应关系;
写单元,用于将所述待写数据写入创建的所述表中。
7.如权利要求6所述的装置,其特征在于,
所述写单元,还用于若确定所述数据库中存在所述当前时间戳归属的设定时间区间的所述表名对应的表,则将所述待写数据写入所述设定时间区间的所述表名对应的表中。
8.如权利要求6所述的装置,其特征在于,
所述拦截单元,还用于利用Mybatis-Plus插件的拦截接口拦截所述客户端发送的数据删除请求,所述数据删除请求中携带有待删除数据、待删除数据的删除时间条件和待删除数据所属的表名;
所述装置,还包括:
第一匹配单元,用于基于所述删除时间条件匹配对应设定时间区间的所述待删除数据所属的表名对应的表;
删除单元,用于从匹配到的所述待删除数据所属的表名对应的表中删除所述待删除数据。
9.如权利要求6所述的装置,其特征在于,
所述拦截单元,还用于利用Mybatis-Plus插件的拦截接口拦截所述客户端发送的数据修改请求,所述修改请求中包括待修改数据、待修改数据的修改时间条件和所述待修改数据所属的表名;
所述装置,还包括:
第二匹配单元,用于基于所述修改时间条件匹配对应设定时间区间的所述待修改数据所属的表名对应的表;
修改单元,用于从匹配到的所述待修改数据所属表名对应的表中对所述待修改数据进行修改。
10.如权利要求6所述的装置,其特征在于,
所述拦截单元,还用于利用Mybatis-Plus插件的拦截接口拦截所述客户端发送的数据查询请求,所述数据查询请求中携带有待查询数据、待查询数据的查询时间条件和待查询数据所属的表名;
所述装置,还包括:
第三匹配单元,用于基于所述查询时间条件匹配对应设定时间区间的所述待查询数据所属的表名对应的表;
查询单元,用于展示匹配到的所述待查询数据所属的表名对应的表中的所述待查询数据。
11.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~5任一项所述的数据库分表方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~5任一项所述的数据库分表方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211409241.2A CN118035229A (zh) | 2022-11-11 | 2022-11-11 | 一种数据库分表方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211409241.2A CN118035229A (zh) | 2022-11-11 | 2022-11-11 | 一种数据库分表方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118035229A true CN118035229A (zh) | 2024-05-14 |
Family
ID=91002806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211409241.2A Pending CN118035229A (zh) | 2022-11-11 | 2022-11-11 | 一种数据库分表方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118035229A (zh) |
-
2022
- 2022-11-11 CN CN202211409241.2A patent/CN118035229A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10956364B2 (en) | Efficient data synchronization for storage containers | |
US11157445B2 (en) | Indexing implementing method and system in file storage | |
US12001297B2 (en) | Data backup method and apparatus, server, and computer-readable storage medium | |
CN107977396B (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
WO2010104902A2 (en) | Composite hash and list partitioning of database tables | |
US11327999B2 (en) | Reorganization of partition by growth space with LOB columns | |
US20210357140A1 (en) | Restoring a storage system using file relocation metadata | |
US20150006485A1 (en) | High Scalability Data Management Techniques for Representing, Editing, and Accessing Data | |
JP2022543306A (ja) | ブロックチェーンデータ処理の方法、装置、機器及び可読記憶媒体 | |
CN115840731A (zh) | 文件处理方法、计算设备及计算机存储介质 | |
CN113239012B (zh) | 一种数据库迁移方法、装置、电子设备和存储介质 | |
US20190340278A1 (en) | Document store export/import | |
CN118035229A (zh) | 一种数据库分表方法、装置、电子设备及存储介质 | |
CN116049306A (zh) | 数据同步方法、装置、电子设备以及可读存储介质 | |
CN112464049B (zh) | 号码详单下载方法、装置和设备 | |
CN114691307A (zh) | 事务处理方法及计算机系统 | |
CN116414843A (zh) | 一种数据更新方法及装置 | |
US11232095B2 (en) | Composite metadata objects for database systems | |
CN109241011B (zh) | 一种虚拟机文件处理方法及装置 | |
CN113032408A (zh) | 数据处理方法、系统及设备 | |
CN117131023B (zh) | 数据表处理方法、装置、计算机设备和可读存储介质 | |
CN115129717A (zh) | 实现自动分区的数据写入方法、设备以及计算机可读介质 | |
CN118227565A (zh) | 一种数据管理方法、装置和电子设备 | |
US10360145B2 (en) | Handling large writes to distributed logs | |
CN116301597A (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 |