数据库访问方法及装置的制造方法

文档序号:9432572阅读:264来源:国知局
数据库访问方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及数据库访问方法及装置。
【背景技术】
[0002]目前,数据库数据的访问处理采取数据库代理方案,数据库代理的重要功能就是读写分离,即主机只进行写操作,备机只进行读操作,备机只提供查询操作,任何具有Select选择权限的用户都可以使用备机。
[0003]在数据库的访问过程中,数据库的性能直接影响对外服务体验,其中数据库连接是耗费数据库性能的一个重要原因,优化数据库连接是提高数据库性能的一个突破口。数据库连接池是目前减少数据库连接的解决方案,针对数据库代理的连接池的实现有MysqlProxy读写分离和ScaleBases等产品,上述这些产品的连接池效果图如图1所示。
[0004]在采取如图1所示的连接池技术中,当连接池的连接数量达到最大数量时,用户登录会引发被拒或者连接重置。比如备机I允许的最大连接个数为四个当达到四个时,mysql proxy的处理方法是选择一条已建立的连接进行重置,重置连接很耗费数据库性能;Scalebases的处理方法为拒绝客户端连接。
[0005]在上述mysql proxy和Scalebases的处理方案中把连接池和用户名绑定,导致连接不可被其他用户复用,如图1,备机I有三个连接A、B、C分别为用户A、B、C建立,客户端过来的A、B、C的请求只可以选择对应的连接处理,比如请求A代理只可以选择连接A发送,请求B代理只可以选择连接B发送,如果用户A的请求很多B、C的比较少就会导致连接A拥塞连接B、C空闲,服务器性能没有最大化。
[0006]综上,目前采取的连接池技术提高数据库性能的方式,因连接池和用户名绑定,无法充分利用连接,导致数据库性能差。
[0007]上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

【发明内容】

[0008]本发明的主要目的在于提供一种数据库访问方法及装置,旨在解决目前采取的连接池技术提高数据库性能的方式,因连接池和用户名绑定,无法充分利用连接,导致数据库性能差的问题。
[0009]为实现上述目的,本发明提供的一种数据库访问方法,包括:
[0010]在接收到数据库访问请求后,获取访问请求对应的访问权限;
[0011]确定所述访问权限对应的待访问数据库服务器;
[0012]从所述待访问数据库服务器获取所述访问请求对应的访问数据。
[0013]优选地,所述确定所述访问权限对应的待访问数据库服务器的步骤包括:
[0014]确定所述访问权限对应的访问数据库服务器;
[0015]确定所述访问数据库服务器当前的访问连接数;
[0016]选择所述访问连接数最少的访问数据库服务器作为待访问数据库服务器。
[0017]优选地,所述确定所述访问权限对应的待访问数据库服务器的步骤包括:
[0018]确定所述访问权限对应的访问数据库服务器;
[0019]确定所述访问数据库服务器当前的访问数据量;
[0020]选择所述访问数据量最少的访问数据库服务器作为待访问数据库服务器。
[0021]优选地,所述确定所述访问权限对应的待访问数据库服务器的步骤包括:
[0022]确定所述访问权限对应的访问数据库服务器;
[0023]确定所述访问数据库服务器当前的剩余处理能力;
[0024]选择剩余处理能力最大的访问数据库服务器作为待访问数据库服务器。
[0025]优选地,所述获取访问请求对应的访问权限的步骤之后,还包括:
[0026]在获取所述访问权限失败时,确定主数据库服务器作为待访问数据库服务器。
[0027]优选地,所述方法还包括:
[0028]在接收到数据库访问请求时,解析所述数据库访问请求得到SQL语句;
[0029]根据所述SQL语句判断所述数据库访问请求是否为读操作;
[0030]在所述SQL语句判断所述数据库访问请求是否为读操作时,判断所述数据库访问请求是否存在预设标记;
[0031]在所述数据库访问请求存在预设标记时,从确定的访问数据库服务器中选择一条空闲连接获取所述访问请求对应的访问数据。
[0032]此外,为实现上述目的,本发明还提供一种数据库访问装置,包括:
[0033]获取模块,用于在接收到数据库访问请求后,获取访问请求对应的访问权限;
[0034]确定模块,用于确定所述访问权限对应的待访问数据库服务器;
[0035]所述获取模块,还用于从所述待访问数据库服务器获取所述访问请求对应的访问数据。
[0036]优选地,所述确定模块包括:
[0037]确定单元,用于确定所述访问权限对应的访问数据库服务器;还用于确定所述访问数据库服务器当前的访问连接数;
[0038]选择单元,用于选择所述访问连接数最少的访问数据库服务器作为待访问数据库服务器。
[0039]优选地,所述确定单元,还用于确定所述访问权限对应的访问数据库服务器;还用于确定所述访问数据库服务器当前的访问数据量;
[0040]所述选择单元,还用于选择所述访问数据量最少的访问数据库服务器作为待访问数据库服务器。
[0041]优选地,所述确定单元,还用于确定所述访问权限对应的访问数据库服务器;还用于确定所述访问数据库服务器当前的剩余处理能力;
[0042]所述选择单元,还用于选择剩余处理能力最大的访问数据库服务器作为待访问数据库服务器。
[0043]优选地,所述确定模块,还用于在获取所述访问权限失败时,确定主数据库服务器作为待访问数据库服务器。
[0044]优选地,所述装置还包括:
[0045]解析模块,用于在接收到数据库访问请求时,解析所述数据库访问请求得到SQL语句;
[0046]判断模块,用于根据所述SQL语句判断所述数据库访问请求是否为读操作;还用于在所述SQL语句判断所述数据库访问请求是否为读操作时,判断所述数据库访问请求是否存在预设标记;
[0047]选择模块,用于在所述数据库访问请求存在预设标记时,从确定的访问数据库服务器中选择一条空闲连接获取所述访问请求对应的访问数据。
[0048]本发明通过客户端访问请求的访问权限,选择访问数据库服务器,使得不再将用户与连接绑定,不同用户可以选择不同的连接完成数据库服务器的访问,实现充分利用连接,提尚数据库性能。
【附图说明】
[0049]图1为现有技术数据库访问连接的流程示意图;
[0050]图2为本发明数据库访问方法的第一实施例的流程示意图;
[0051]图3为本发明连接池建立一实施例的流程示意图;
[0052]图4为本发明数据库访问连接一实施例的流程示意图;
[0053]图5为本发明确定所述访问权限对应的待访问数据库服务器第一实施例的流程示意图;
[0054]图6为本发明确定所述访问权限对应的待访问数据库服务器第二实施例的流程示意图;
[0055]图7为本发明确定所述访问权限对应的待访问数据库服务器第三实施例的流程示意图;
[0056]图8为本发明数据库访问方法的第二实施例的流程示意图;
[0057]图9为本发明数据库访问装置的第一实施例的功能模块示意图;
[0058]图10为图9中确定模块一实施例的细化功能模块示意图;
[0059]图11为本发明数据库访问装置的第二实施例的功能模块示意图。
[0060]本发明目的的实现、功能特点及优点将结合实
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1