一种自动分库的数据库执行方法及系统的制作方法

文档序号:6439067阅读:214来源:国知局
专利名称:一种自动分库的数据库执行方法及系统的制作方法
技术领域
本发明属于网络通信领域,尤其涉及一种自动分库的数据库执行方法及系统。
背景技术
于现有的企业平台通信软件中,所有企业共用一个通信服务器,且通信服务器在保存各个企业用户人员的聊天记录、查询用户资料等信息时,采用的是同一个数据库。如此,会带来大量的数据库执行操作。而且,在业务逻辑繁忙时,会导致数据库执行超时,业务逻辑处理失败,从而影响用户体验。

发明内容
本发明提供一种自动分库的数据库执行方法及系统,以解决上述问题。本发明提供一种自动分库的数据库执行方法。上述方法包括以下步骤分库装置根据用户编号确定所述用户编号对应的数据库编号;分库装置判断数据库编号与SQL执行对象的对照表中是否存在所述数据库编号;若对照表中存在所述数据库编号,则分库装置于获得所述数据库编号对应的SQL执行对象后,封装所述SQL执行对象及待执行的SQL语句为待执行对象,并将所述待执行对象放入任务队列中由队列调度装置调度执行。本发明还提供一种自动分库的数据库执行系统,包括分库装置以及队列调度装置。分库装置连接队列调度装置。其中,分库装置用于根据用户编号确定所述用户编号对应的数据库编号,并用于判断数据库编号与SQL执行对象的对照表中是否存在所述数据库编号。若对照表中存在所述数据库编号,则分库装置于获得所述数据库编号对应的SQL执行对象后,用于封装所述SQL执行对象及待执行的SQL语句为待执行对象,并将所述待执行对象放入任务队列中由队列调度装置调度执行。相较于先前技术,根据本发明提供的自动分库的数据库执行方法及系统,分库装置根据用户编号确定其对应的数据库编号。如此,定量数目的用户可以共用一个数据库,从而将大量的数据库操作压力分解到多个数据库,提高数据库执行效率。此外,若对照表中存在所述数据库编号,则分库装置于获得所述数据库编号对应的SQL执行对象后,封装所述 SQL执行对象及待执行的SQL语句为待执行对象,并将所述待执行对象放入任务队列中由队列调度装置调度执行。如此,通过队列调度装置进行调度执行,有利于数据库负载均衡, 从而提高数据库的稳定性和执行效率。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1所示为根据本发明的较佳实施例提供的自动分库的数据库执行方法的流程图;图2所示为根据本发明的较佳实施例提供的自动分库的数据库执行系统的示意图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。图1所示为根据本发明的较佳实施例提供的自动分库的数据库执行方法的流程图。如图1所示,本发明的较佳实施例提供的自动分库的数据库执行方法包括101 103。于步骤101,分库装置根据用户编号确定所述用户编号对应的数据库编号。具体而言,分库装置根据用户编号计算得到其对应的数据库编号的方式为将用户编号整除预设值后取整得到所述用户编号对应的数据库编号。例如,当预设值为100时,0 99的用户编号均对应数据库编号为0的数据库。换言之,每一百个用户共用一个数据库。然而,本发明并不限定于此。于实际应用中,可根据需要设定所述预设值。于步骤102,分库装置判断数据库编号与SQL执行对象的对照表中是否存在所述数据库编号。具体而言,分库装置会存储已经存在的数据库编号与SQL执行对象的对照表。 例如下表所示。其中,分库装置可更新所述对照表。
权利要求
1.一种自动分库的数据库执行方法,其特征在于,包括以下步骤分库装置根据用户编号确定所述用户编号对应的数据库编号;所述分库装置判断数据库编号与SQL执行对象的对照表中是否存在所述数据库编号;若所述对照表中存在所述数据库编号,则所述分库装置于获得所述数据库编号对应的 SQL执行对象后,封装所述SQL执行对象及待执行的SQL语句为待执行对象,并将所述待执行对象放入任务队列中由队列调度装置调度执行。
2.根据权利要求1所述的自动分库的数据库执行方法,其特征在于,若所述对照表中不存在所述数据库编号,则所述分库装置创建所述数据库编号对应的SQL执行对象,并将所述数据库编号及其对应的SQL执行对象存储至所述对照表。
3.根据权利要求2所述的自动分库的数据库执行方法,其特征在于,于所述分库装置将新创建的数据库编号及其对应的SQL执行对象存储至所述对照表后,所述分库装置封装所述SQL执行对象及待执行的SQL语句为待执行对象,并将所述待执行对象放入任务队列中由所述队列调度装置调度执行。
4.根据权利要求1或3所述的自动分库的数据库执行方法,其特征在于,于所述队列调度装置调度所述待执行对象时,获取所述待执行对象的SQL语句及对应的SQL执行对象,并由所述SQL执行对象执行所述SQL语句。
5.根据权利要求1所述的自动分库的数据库执行方法,其特征在于,所述分库装置根据用户编号确定其对应的数据库编号的方式为将所述用户编号整除预设值后取整得到所述用户编号对应的数据库编号。
6.根据权利要求1所述的自动分库的数据库执行方法,其特征在于,所述SQL执行对象包括查询连接池以及操作连接池,所述查询连接池以及所述操作连接池分别用于存储数据库连接。
7.一种自动分库的数据库执行系统,其特征在于,包括分库装置以及队列调度装置,所述分库装置连接所述队列调度装置,其中,所述分库装置用于根据用户编号确定所述用户编号对应的数据库编号,并用于判断数据库编号与SQL执行对象的对照表中是否存在所述数据库编号,若所述对照表中存在所述数据库编号,则所述分库装置于获得所述数据库编号对应的 SQL执行对象后,用于封装所述SQL执行对象及待执行的SQL语句为待执行对象,并将所述待执行对象放入任务队列中由队列调度装置调度执行。
8.根据权利要求7所述的自动分库的数据库执行系统,其特征在于,所述SQL执行对象包括查询连接池以及操作连接池,所述查询连接池以及所述操作连接池分别用于存储数据库连接。
全文摘要
本发明提供一种自动分库的数据库执行方法及系统。上述方法包括以下步骤分库装置根据用户编号确定所述用户编号对应的数据库编号;分库装置判断数据库编号与SQL执行对象的对照表中是否存在所述数据库编号;若对照表中存在所述数据库编号,则分库装置于获得所述数据库编号对应的SQL执行对象后,封装所述SQL执行对象及待执行的SQL语句为待执行对象,并将所述待执行对象放入任务队列中由队列调度装置调度执行。
文档编号G06F17/30GK102541997SQ201110375030
公开日2012年7月4日 申请日期2011年11月23日 优先权日2011年11月23日
发明者胡加明 申请人:苏州阔地网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1