[发明专利]一种水电数据库自动建表分表的方法有效

专利信息
申请号: 201911239181.2 申请日: 2019-12-06
公开(公告)号: CN111177148B 公开(公告)日: 2023-03-24
发明(设计)人: 陈意;郑键兵;花胜强;蔡杰;丁琳;吴宁;李宁宁;向南;周锡琅 申请(专利权)人: 南京南瑞水利水电科技有限公司;国电南瑞科技股份有限公司
主分类号: G06F16/22 分类号: G06F16/22
代理公司: 南京纵横知识产权代理有限公司 32224 代理人: 耿英
地址: 210009 *** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 水电 数据库 自动 建表分表 方法
【权利要求书】:

1.一种水电数据库自动建表分表的方法,其特征是,包括以下步骤:

1)虚拟数据库前端按照mysql数据库标准底层通讯协议建立数据库服务侦听,后端按照真实的数据库连接信息、用户名和密码建立物理数据库连接线程池,水电业务系统按照真实的mysql的链接信息连接到虚拟数据库;

2)水电业务系统的数据访问层向虚拟数据库提交sql请求,虚拟数据库侦听到sql请求语句,将sql请求语句进行解析,比对预设的分表表名和分表算法,查看该条sql请求语句是否需要进行分表处理;如果该条语句无需进行分表处理,直接将该请求提交至后端物理数据库;

3)对于需要进行分表处理的sql请求语句,解析语句查询条件,根据预设的分表算法计算出该条语句涉及的子表名称,按语句类型、排序和分组进行类别归类;

4)根据子表名称查询子表缓存,查看子表在物理数据库是否存在,如果不存在,在物理数据库创建相应的子表,如果存在该子表,表示该子表已经被创建,则进入步骤5),对该子表进行请求提交;

5)对提交的sql请求语句进行修正,将其拆分成多个子表请求,将所有请求异步提交给物理数据库执行,将每个子表请求的返回结果放置缓存于结果集;等待所有子表请求完成,进入步骤6)进行结果集合并;

6)所有的子查询结果集按照步骤3)整理的类别进行归并处理,将归并的结果集按照标准的mysql协议返回给水电业务系统;

分表处理的内容包括定义表的分片规则来实现分片,每个表格捆绑一个分片规则,每个分片规则指定一个分片字段并绑定一个函数,来实现动态分片算法;

当用来进行分表的逻辑库收到一个SQL请求语句时,先解析这个SQL请求语句,查找涉及到的表,然后查看此表的定义,如果有分片规则,则获取到SQL请求语句里分片字段的值,并匹配分片函数,得到该SQL请求语句对应的分片列表,然后将SQL请求语句发往这些分片去执行,最后收集和处理所有分片返回的结果数据,并输出到客户端;

步骤4)中,子表创建的步骤为:预先设置子表创建脚本模板,当子表不存在时,子表结构直接模仿主表进行复制创建;

所述虚拟数据库中的分表配置中心构建有分表算法注册中心,直接参与分表的表名、字段名以及指定分表算法的实现类路径。

2.根据权利要求1所述的水电数据库自动建表分表的方法,其特征是,步骤2)中,分表处理的方法为:通过sql语法分析器,将输入sql请求语句的查找条件、子查找条件和分表字段值处理进行缓存分析,循环计算分表范围,确定所有的分片节点以后,对所有分片并行进行子表语句执行。

3.根据权利要求1所述的水电数据库自动建表分表的方法,其特征是,将主表的约束和主表触发器复制给子表,相关的约束和触发器按照模板进行自动创建。

4.根据权利要求1所述的水电数据库自动建表分表的方法,其特征是,步骤6)中的归并处理包括再排序和分组。

5.根据权利要求1所述的水电数据库自动建表分表的方法,其特征是,在所述虚拟数据库定义线程池,与真实的物理数据库建立连接,当多条sql请求语句请求处理时,并发构建多个会话和物理数据库进行通讯。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京南瑞水利水电科技有限公司;国电南瑞科技股份有限公司,未经南京南瑞水利水电科技有限公司;国电南瑞科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201911239181.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top