一种数据库管理系统连接复用方法及装置制造方法

文档序号:6490992阅读:156来源:国知局
一种数据库管理系统连接复用方法及装置制造方法
【专利摘要】本发明属于数据存储领域,尤其涉及一种数据库管理系统连接复用方法及装置。本发明数据库管理系统连接复用方法包括:建立数据库连接池对象,并创建数据库连接请求;分析结构化查询语言,根据结构化查询语言类型及处理状态判断数据库连接池中是否存在空闲状态的可复用连接,如果存在,执行下一步骤;选取该空闲状态的可复用连接进行复用。本发明数据库管理系统连接复用方法及装置根据已处理SQL语言类型设置MySQL连接是否可以复用,可以充分使用一个MySQL连接,提高系统总体性能;并根据SQL语言的处理状态设置MySQL连接是否空闲,而避免连接复用效果依赖于使用方的问题,提高使用效率。
【专利说明】一种数据库管理系统连接复用方法及装置
【技术领域】
[0001]本发明属于数据存储【技术领域】,尤其涉及一种数据库管理系统连接复用方法及装置。
【背景技术】
[0002]在现有封装mysql操作的客户端库或者实现mysql读写分离的代理模块中,采取了基于线程的连接复用技术,将数据库连接作为对象存储在一个容器对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接,这样,通过复用这些已经建立的数据库连接,减少建立数据库连接的时间,极大的节省系统资源和时间,提高整个系统的性能。其中,mysql是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,增加了速度并提高了灵活性;连接复用技术为通过建立一个数据库连接池以及一套连接使用、分配、管理策略,使得该连接池中的连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。连接复用主要机制包括:1、建立数据库连接池(数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏)对象并创建好指定数量的数据库连接;2、对于一个数据库访问请求,从连接池中得到一个空闲连接,如果数据库连接池中没有空闲连接且连接数没有超过阈值则创建一个新的数据库连接。
[0003]现有基于线程的MySQL连接复用技术存在以下缺点:一、系统资源开销大;采取每个MySQL连接使用一个线程的方式,由于线程切换和线程管理会带来额外的系统资源开销,从而影响总体性能;二、使用受到限制;在现有技术中,如果某个mysql连接不是空闲状态(使用方没有关闭或者交换连接),则该连接一直不能被复用,连接复用效果依赖于使用方,使用效率不高。

【发明内容】

[0004]本发明提供了一种数据库管理系统连接复用方法及装置,旨在解决现有基于线程的MySQL连接复用技术系统资源开销大且使用效率不高的问题。
[0005]本发明是这样实现的,一种数据库管理系统连接复用方法,包括:
[0006]建立数据库连接池对象,并创建数据库连接请求;
[0007]分析结构化查询语言,根据结构化查询语言类型及处理状态判断数据库连接池中是否存在空闲状态的可复用连接,如果存在,执行下一步骤;
[0008]选取该空闲状态的可复用连接进行复用。
[0009]本发明实施例的技术方案还包括:所述建立数据库连接池对象步骤还包括:设置连接池连接数的阀值,所述创建数据库连接请求步骤还包括:判断连接池中的连接数是否超过阈值,如果连接池中的连接数没有超过阈值,则创建一个新连接;如果连接池中的连接数超过阈值,则分析结构化查询语言。[0010]本发明实施例的技术方案还包括:所述根据结构化查询语言类型及处理状态判断数据库连接池中是否存在空闲状态的可复用连接步骤还包括:分析结构化查询语言类型,根据结构化查询语言类型判断数据库连接池中是否存在可复用的连接,如果连接池中存在可复用的连接,分析该连接的结构化查询语言处理状态;如果连接池中不存在可复用的连接,结束本次连接。
[0011]本发明实施例的技术方案还包括:所述根据结构化查询语言类型及处理状态判断数据库连接池中是否存在空闲状态的可复用连接步骤还包括:选取该可复用的连接,并分析连接的结构化查询语言处理状态,根据结构化查询语言处理状态判断连接是否为空闲状态,如果连接为空闲状态,选取该空闲状态的可复用连接进行复用;如果连接为非空闲状态,结束本次连接。
[0012]本发明实施例的技术方案还包括:所述分析结构化查询语言类型,根据结构化查询语言类型判断数据库连接池中是否存在可复用的连接包括:根据结构化查询语言类型设置连接是否为可复用连接,设置的准则是:如果结构化查询语言类型具备上下文,则连接为不可复用的连接;如果结构化查询语言类型不具备上下文,则连接为可复用的连接。
[0013]本发明实施例的技术方案还包括:所述分析该连接的结构化查询语言处理状态,根据结构化查询语言处理状态判断该连接是否为空闲状态包括:根据结构化查询语言是否处理完毕来设置连接是否空闲,设置的准则是:如果结构化查询语言处理完毕则该连接为空闲状态;如果结构化查询语言没有处理完毕则该连接为非空闲状态。
[0014]本发明实施例采取的另一技术方案为:一种数据库管理系统连接复用装置,包括连接池建立模块、数据库连接模块、连接判断模块和连接选取模块,所述连接池建立模块用于建立数据库连接池对象;所述数据库连接模块用于创建数据库连接请求;所述连接判断模块用于分析结构化查询语言,根据结构化查询语言类型及处理状态判断数据库连接池中是否存在空闲状态的可复用连接,如果存在,通过连接选取模块选取该连接进行复用;所述连接选取模块用于选取空闲状态的可复用连接进行复用。
[0015]本发明实施例的技术方案还包括:所述数据库管理系统连接复用装置还包括连接数判断模块和连接创建模块,所述连接池建立模块建立数据库连接池对象并设置连接池连接数的阀值,所述连接数判断模块用于判断连接池中的连接数是否超过阈值,如果连接池中的连接数没有超过阈值,通过连接创建模块创建新的连接;如果连接池中的连接数超过阈值,通过连接判断模块判断是否存在可复用连接;所述连接创建模块用于创建新连接。
[0016]本发明实施例的技术方案还包括:所述连接判断模块还包括第一判断单元和第二判断单元,所述第一判断单元用于分析结构化查询语言类型,根据结构化查询语言类型判断数据库连接池中是否存在可复用的连接,如果连接池中存在可复用的连接,通过第二判断单元分析结构化查询语言处理状态;如果连接池中不存在可复用的连接,结束本次连接。
[0017]本发明实施例的技术方案还包括:所述第二判断单元用于选取可复用的连接,并分析连接的结构化查询语言处理状态,根据结构化查询语言处理状态判断该连接是否为空闲状态,如果是,通过连接选取模块选取该连接进行复用;如果否,结束本次连接。
[0018]本发明实施例的技术方案还包括:所述第一判断单元分析结构化查询语言类型,根据结构化查询语言类型判断数据库连接池中是否存在可复用的连接包括:根据结构化查询语言类型设置该连接是否为可复用连接,如果该结构化查询语言类型具备上下文,则所述连接为不可复用的连接;如果该结构化查询语言类型不具备上下文,则所述连接为可复用的连接。
[0019]本发明实施例的技术方案还包括:所述第二判断单元分析该连接的结构化查询语言处理状态,根据结构化查询语言处理状态判断该连接是否为空闲状态包括:根据结构化查询语言是否处理完毕来设置该连接是否空闲,如果结构化查询语言处理完毕则该连接为空闲状态;如果结构化查询语言没有处理完毕则该连接为非空闲状态。
[0020]本发明的技术方案具有如下优点或有益效果:本发明数据库管理系统连接复用方法及装置根据已处理SQL语言类型设置MySQL连接是否可以复用,可以充分使用一个MySQL连接,提高系统总体性能;并根据SQL语言的处理状态设置MySQL连接是否空闲,而避免连接复用效果依赖于使用方的问题,提高使用效率。
【专利附图】

【附图说明】
[0021]附图1是本发明第一实施例的数据库管理系统连接复用方法的流程图;
[0022]附图2是本发明第二实施例的数据库管理系统连接复用方法的流程图;
[0023]附图3是本发明第一实施例的数据库管理系统连接复用装置的结构示意图;
[0024]附图4是本发明第二实施例的数据库管理系统连接复用装置的结构示意图。
【具体实施方式】
[0025]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0026]请参阅图1,是本发明第一实施例的数据库管理系统连接复用方法的流程图。本发明第一实施例的数据库管理系统连接复用方法包括以下步骤:
[0027]步骤SlOO:建立数据库连接池对象,并创建数据库连接请求;
[0028]步骤SllO:分析结构化查询语言,根据结构化查询语言类型及处理状态判断数据库连接池中是否存在空闲状态的可复用连接,如果存在,执行步骤S120 ;
[0029]在步骤SllO中,对于一个数据库操作请求,本发明根据SQL (Structured QueryLanguage,结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统)语言类型设置该连接是否为可复用连接,设置的准则是:如果该SQL语言类型是具备上下文的,则该连接为不可复用的连接;如果该SQL语言类型不具备上下文,则该连接为可复用的连接;其中,上下文是一种属性的有序序列,它们为驻留在环境内的对象定义环境,在对象的激活过程中创建上下文,对象被配置为要求某些自动服务,如同步、事务、实时激活及安全性等等;本发明根据SQL语言是否处理完毕来设置该连接是否空闲,设置的准则是:如果SQL语言处理完毕则该连接为空闲状态,如果SQL语言没有处理完毕则该连接为非空闲状态。
[0030]步骤S120:选取该空闲状态的可复用连接进行复用;
[0031]在步骤S120中,一个连接被复用的条件是:该连接为可复用连接且该连接为空闲状态。
[0032]请参阅图2,是本发明第二实施例的数据库管理系统连接复用方法的流程图。本发明第二实施例的数据库管理系统连接复用方法包括以下步骤:
[0033]步骤S200:建立数据库连接池对象,并设置连接池连接数的阀值;
[0034]步骤S210:创建数据库连接请求,并判断连接池中的连接数是否超过阈值,如果否,执行步骤S220 ;如果是,执行步骤S230 ;
[0035]步骤S220:创建一个新连接,并执行步骤S260 ;
[0036]步骤S230:分析SQL语言类型,根据SQL语言类型判断数据库连接池中是否存在可复用的连接,如果是,执行步骤S240 ;如果否,执行步骤S260 ;
[0037]在步骤S230中,对于一个数据库操作请求,本发明根据SQL (Structured QueryLanguage,结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统)语言类型设置该连接是否为可复用连接,设置的准则是:如果该SQL语言类型是具备上下文的,则该连接为不可复用的连接;如果该SQL语言类型不具备上下文,则该连接为可复用的连接;其中,上下文是一种属性的有序序列,它们为驻留在环境内的对象定义环境,在对象的激活过程中创建上下文,对象被配置为要求某些自动服务,如同步、事务、实时激活及安全性等等。
[0038]步骤S240:选取该可复用的连接,并分析该连接的SQL语言处理状态,根据SQL语言处理状态判断该连接是否为空闲状态,如果是,执行步骤S250 ;如果否,执行步骤S260 ;
[0039]在步骤S240中,对于一个连接,本发明根据SQL语言是否处理完毕来设置该连接是否空闲,设置的准则是:如果SQL语言处理完毕则该连接为空闲状态;如果SQL语言没有处理完毕则该连接为非空闲状态。
[0040]步骤S250:选取该空闲状态的可复用连接进行复用;
[0041]在步骤S250中,一个连接被复用的条件是:该连接为可复用连接且该连接为空闲状态。
[0042]步骤S260:结束本次连接。
[0043]请参阅图3,是本发明第一实施例的数据库管理系统连接复用装置的结构示意图。本发明第一实施例的数据库管理系统连接复用装置包括连接池建立模块、数据库连接模块、连接判断模块和连接选取模块,其中,
[0044]连接池建立模块用于建立数据库连接池对象;
[0045]数据库连接模块用于创建数据库连接请求;
[0046]连接判断模块用于分析结构化查询语言,根据结构化查询语言类型及处理状态判断数据库连接池中是否存在空闲状态的可复用连接,如果存在,通过连接选取模块选取该连接进行复用;其中,对于一个数据库操作请求,本发明根据SQL (Structured QueryLanguage,结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统)语言类型设置该连接是否为可复用连接,设置的准则是:如果该SQL语言类型是具备上下文的,则该连接为不可复用的连接;如果该SQL语言类型不具备上下文,则该连接为可复用的连接;其中,上下文是一种属性的有序序列,它们为驻留在环境内的对象定义环境,在对象的激活过程中创建上下文,对象被配置为要求某些自动服务,如同步、事务、实时激活及安全性等等;本发明根据SQL语言是否处理完毕来设置该连接是否空闲,设置的准则是:如果SQL语言处理完毕则该连接为空闲状态;如果SQL语言没有处理完毕则该连接为非空闲状态。[0047]连接选取模块用于选取空闲状态的可复用连接进行复用;其中,一个连接被复用的条件是:该连接为可复用连接且该连接为空闲状态。
[0048]请参阅图4,是本发明第二实施例的数据库管理系统连接复用装置的结构示意图。本发明第二实施例的数据库管理系统连接复用装置包括连接池建立模块、数据库连接模块、连接数判断模块、连接创建模块、连接判断模块和连接选取模块,其中,
[0049]连接池建立模块用于建立数据库连接池对象,并设置连接池连接数的阀值;
[0050]数据库连接模块用于创建数据库连接请求;
[0051]连接数判断模块用于判断连接池中的连接数是否超过阈值,如果否,通过连接创建模块创建新的连接;如果是,通过连接判断模块判断是否存在可复用连接;
[0052]连接创建模块用于创建一个新连接;
[0053]连接判断模块用于分析结构化查询语言,根据结构化查询语言类型及处理状态判断数据库连接池中是否存在空闲状态的可复用连接,如果存在,通过连接选取模块选取该连接进行复用;具体地,连接判断模块包括第一判断单元和第二判断单元,
[0054]第一判断单元用于分析SQL语言类型,根据SQL语言类型判断数据库连接池中是否存在可复用的连接,如果是,通过第二判断单元分析SQL语言处理状态;如果否,结束本次连接;其中,对于一个数据库操作请求,本发明根据SQL(Structured Query Language,结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统)语言类型设置该连接是否为可复用连接,设置的准则是:如果该SQL语言类型是具备上下文的,则该连接为不可复用的连接;如果该SQL语言类型不具备上下文,则该连接为可复用的连接;其中,上下文是一种属性的有序序列,它们为驻留在环境内的对象定义环境,在对象的激活过程中创建上下文,对象被配置为要求某些自动服务,如同步、事务、实时激活及安全性等等。
[0055]第二判断单元用于选取该可复用的连接,并分析该连接的SQL语言处理状态,根据SQL语言处理状态判断该连接是否为空闲状态,如果是,通过连接选取模块选取该连接进行复用;如果否,结束本次连接;其中,对于一个连接,本发明根据SQL语言是否处理完毕来设置该连接是否空闲,设置的准则是:如果SQL语言处理完毕则该连接为空闲状态;如果SQL语言没有处理完毕则该连接为非空闲状态。
[0056]连接选取模块用于选取该空闲状态的可复用连接进行复用;其中,一个连接被复用的条件是:该连接为可复用连接且该连接为空闲状态。
[0057]本发明数据库管理系统连接复用方法及装置根据已处理SQL语言类型设置MySQL连接是否可以复用,可以充分使用一个MySQL连接,提高系统总体性能;并根据SQL语言的处理状态设置MySQL连接是否空闲,而避免连接复用效果依赖于使用方的问题,提高使用效率。
[0058]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种数据库管理系统连接复用方法,包括: 建立数据库连接池对象,并创建数据库连接请求; 分析结构化查询语言,根据结构化查询语言类型及处理状态判断数据库连接池中是否存在空闲状态的可复用连接,如果存在,执行下一步骤; 选取所述空闲状态的可复用连接进行复用。
2.根据权利要求1所述的数据库管理系统连接复用方法,其特征在于,所述建立数据库连接池对象步骤还包括:设置连接池连接数的阀值,所述创建数据库连接请求步骤还包括:判断连接池中的连接数是否超过阈值,如果连接池中的连接数没有超过阈值,则创建一个新连接;如果连接池中的连接数超过阈值,则分析结构化查询语言。
3.根据权利要求1所述的数据库管理系统连接复用方法,其特征在于,所述根据结构化查询语言类型及处理状态判断数据库连接池中是否存在空闲状态的可复用连接步骤还包括:分析结构化查询语言类型,根据结构化查询语言类型判断数据库连接池中是否存在可复用的连接,如果连接池中存在可复用的连接,分析该连接的结构化查询语言处理状态;如果连接池中不存在可复用的连接,结束本次连接。
4.根据权利要求3所述的数据库管理系统连接复用方法,其特征在于,所述根据结构化查询语言类型及处理状态判断数据库连接池中是否存在空闲状态的可复用连接步骤还包括:选取该可复用的连接,并分析连接的结构化查询语言处理状态,根据结构化查询语言处理状态判断连接是否为空闲状态,如果连接为空闲状态,选取该空闲状态的可复用连接进行复用;如果连接为非空闲状态,结束本次连接。
5.根据权利要求3所述的数据库管理系统连接复用方法,其特征在于,所述分析结构化查询语言类型,根据结构化查询语言类型判断数据库连接池中是否存在可复用的连接包括:根据结构化查询语言类型设置连接是否为可复用连接,设置的准则是:如果结构化查询语言类型具备上下文,则连接为不可复用的连接;如果结构化查询语言类型不具备上下文,则连接为可复用的连接。
6.根据权利要求4所述的数据库管理系统连接复用方法,其特征在于,所述分析该连接的结构化查询语言处理状态,根据结构化查询语言处理状态判断该连接是否为空闲状态包括:根据结构化查询语言是否处理完毕来设置连接是否空闲,设置的准则是:如果结构化查询语言处理完毕则该连接为空闲状态;如果结构化查询语言没有处理完毕则该连接为非空闲状态。
7.一种数据库管理系统连接复用装置,包括连接池建立模块和数据库连接模块,所述连接池建立模块用于建立数据库连接池对象;所述数据库连接模块用于创建数据库连接请求;其特征在于,还包括连接判断模块和连接选取模块,所述连接判断模块用于分析结构化查询语言,根据结构化查询语言类型及处理状态判断数据库连接池中是否存在空闲状态的可复用连接,如果存在,通过连接选取模块选取该连接进行复用;所述连接选取模块用于选取空闲状态的可复用连接进行复用。
8.根据权利要求7所述的数据库管理系统连接复用装置,其特征在于,还包括连接数判断模块和连接创建模块,所述连接池建立模块建立数据库连接池对象并设置连接池连接数的阀值,所述连接数判断模块用于判断连接池中的连接数是否超过阈值,如果连接池中的连接数没有超过阈值,通过连接创建模块创建新的连接;如果连接池中的连接数超过阈值,通过连接判断模块判断是否存在可复用连接;所述连接创建模块用于创建新连接。
9.根据权利要求7所述的数据库管理系统连接复用装置,其特征在于,所述连接判断模块还包括第一判断单元和第二判断单元,所述第一判断单元用于分析结构化查询语言类型,根据结构化查询语言类型判断数据库连接池中是否存在可复用的连接,如果连接池中存在可复用的连接,通过第二判断单元分析结构化查询语言处理状态;如果连接池中不存在可复用的连接,结束本次连接。
10.根据权利要求9所述的数据库管理系统连接复用装置,其特征在于,所述第二判断单元用于选取可复用的连接,并分析连接的结构化查询语言处理状态,根据结构化查询语言处理状态判断该连接是否为空闲状态,如果是,通过连接选取模块选取该连接进行复用;如果否,结束本次连接。
11.根据权利要求9所述的数据库管理系统连接复用装置,其特征在于,所述第一判断单元分析结构化查询语言类型,根据结构化查询语言类型判断数据库连接池中是否存在可复用的连接包括:根据结构化查询语言类型设置该连接是否为可复用连接,如果该结构化查询语言类型具备上下文,则所述连接为不可复用的连接;如果该结构化查询语言类型不具备上下文,则所述连接为可复用的连接。
12.根据权利要求10所述的数据库管理系统连接复用装置,其特征在于,所述第二判断单元分析该连接的结构化查询语言处理状态,根据结构化查询语言处理状态判断该连接是否为空闲状态包括:根据结构化查询语言是否处理完毕来设置该连接是否空闲,如果结构化查询语言处理完毕则该连接为空闲状态;如果结构化查询语言没有处理完毕则该连接为非空闲状态。
【文档编号】G06F17/30GK103810203SQ201210453646
【公开日】2014年5月21日 申请日期:2012年11月13日 优先权日:2012年11月13日
【发明者】程彬, 李宇 申请人:深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1