实现数据库读写分离的方法和装置制造方法及图纸

技术编号:15690874 阅读:74 留言:0更新日期:2017-06-24 03:37
本发明专利技术公开了一种实现数据库读写分离的方法和装置,属于数据处理技术领域。数据库包括主库和从库,从库是对主库的备份,该方法包括:接收应用服务器发送的结构化查询语言SQL访问请求;根据该SQL访问请求,获取该SQL访问请求对应的操作类型和该SQL访问请求的请求标识;如果该操作类型为写操作类型,则将该SQL访问请求对应的待写入数据写入主库中;如果该操作类型为读操作类型,根据该请求标识和读写分离表确定是否需要读写分离,如果需要读写分离,从从库中读取该SQL访问请求对应的数据,读写分离表包括需要进行读写分离的SQL访问请求的请求标识。装置包括:接收模块,第一获取模块,写入模块和读取模块。本发明专利技术可以减少应用程序的开发难度。

Method and device for realizing read and write separation of database

The invention discloses a method and a device for realizing read and write separation of a database, belonging to the technical field of data processing. The database includes the main library and from the library, from the library is on the primary database backup, the method includes: receiving the application server sends the structured query language SQL access request; according to the SQL access request access to the SQL access request corresponding to the type of operation and the SQL access request identifier; if the operation type is written the type of operation, the SQL access request to the corresponding writing data to be written to the main library; if the operation type is a read operation type, according to the request identifier and write separate table to determine whether the need to separate read and write, if you need to read and write separate, read from the SQL library from the corresponding data access request, read write separate table including request identification need to read and write separate SQL access requests. The device comprises a receiving module, a first acquiring module, a writing module and a reading module. The invention can reduce the difficulty of application development.

【技术实现步骤摘要】
实现数据库读写分离的方法和装置
本专利技术涉及数据处理
,特别涉及一种实现数据库读写分离的方法和装置。
技术介绍
在互联网数据库解决方案中,MySQL(关系型数据库)是一种比较常用的数据库,MySQL在数据访问并发量较高的情况下,一般会采用读写分离的技术实现数据的读操作和写操作,读写分离是指在数据库中设置一个主库和至少一个从库,主库中的数据实时同步到从库中,主库担任写操作,从库担任读操作。其中,主库对应的连接串,用于唯一标识主库,每个从库对应的连接串,用于唯一标识从库。当某个应用程序想要实现数据库读写分离时,该应用程序的开发人员先将主库的连接串写入该应用程序包括的所有写操作的SQL(StructuredQueryLanguage,结构化查询语言)语句中,将从库的连接串写入该应用程序包括的所有读操作的SQL语句中。在运行该应用程序时,当运行到读操作类型的SQL语句且该SQL语句中包括主库的连接串时,应用程序根据主库的连接串,从主库中读取该SQL语句对应的数据;当运行到读操作类型的SQL语句且该SQL语句中包括从库的连接串时,应用程序根据从库的连接串,从从库中读取该SQL语句对应的数据。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:上述方法是通过编程实现读写分离,这样增加了应用程序的开发难度。
技术实现思路
为了解决现有技术的问题,本专利技术提供了一种实现数据库读写分离的方法和装置。技术方案如下:一种实现数据库读写分离的方法,所述数据库包括主库和从库,所述从库是对所述主库的备份,所述方法包括:接收应用服务器发送的结构化查询语言SQL访问请求;根据所述SQL访问请求,获取所述SQL访问请求对应的操作类型和所述SQL访问请求的请求标识;如果所述操作类型为写操作类型,则将所述SQL访问请求对应的待写入数据写入所述主库中;如果所述操作类型为读操作类型,根据所述请求标识和读写分离表确定是否需要读写分离,如果需要读写分离,从所述从库中读取所述SQL访问请求对应的数据,所述读写分离表包括需要进行读写分离的SQL访问请求的请求标识。优选的,所述方法还包括:根据读写信息记录表,在所述读写分离表中添加或删除SQL访问请求的请求标识,所述读写信息记录表用于存储所述应用服务器历史发送的SQL访问请求的读写信息;或者,在所述读写分离表中添加或删除用户选择的SQL访问请求。优选的,所述根据读写信息记录表,在所述读写分离表中添加或删除SQL访问请求的请求标识,包括:从读写信息记录表中选择操作类型为读操作类型且读写信息满足预设读写分离条件的SQL访问请求的请求标识,将所述选择的请求标识添加到所述读写分离表中;或者,根据读写信息记录表,从所述读写分离表中选择读写信息不满足预设读写分离条件的SQL访问请求的请求标识,将所述选择的请求标识,从所述读写分离表中删除。优选的,所述方法还包括:获取所述SQL访问请求的读写信息;根据所述读写信息,更新所述读写信息记录表中的所述SQL访问请求对应的读写信息。优选的,所述根据所述SQL访问请求,获取所述SQL访问请求对应的操作类型和所述SQL访问请求的请求标识,包括:解析所述SQL访问请求,从所述SQL访问请求中获取所述SQL访问请求对应的操作类型;对所述SQL访问请求进行归一化处理,得到处理后的SQL访问请求;对所述处理后的SQL访问请求进行消息摘要算法第五版MD5类运算,得到所述SQL访问请求的请求标识。优选的,如果所述数据库包括多个从库,所述从所述从库中读取所述SQL访问请求对应的数据,包括:从所述多个从库中选择从库,从所述选择的从库中读取所述SQL访问请求对应的数据。优选的,所述从所述多个从库中选择从库,包括:获取所述多个从库中的每个从库的同步时延信息,根据所述每个从库的同步时延信息,从所述多个从库中选择同步时延最小或者同步时延信息满足所述SQL访问请求对应的同步时延要求的从库;或者,从所述读写分离表中获取所述SQL访问请求对应的从库,所述读写分离表还包括需要进行读写分离的SQL访问请求对应的从库;或者,获取所述多个从库中的每个从库的负载信息,根据所述每个从库的负载信息,从所述多个从库中选择负载最小的从库。一种实现数据库读写分离的装置,所述数据库包括主库和从库,所述从库是对所述主库的备份,所述装置包括:接收模块,用于接收应用服务器发送的结构化查询语言SQL访问请求;第一获取模块,用于根据所述SQL访问请求,获取所述SQL访问请求对应的操作类型和所述SQL访问请求的请求标识;写入模块,用于如果所述操作类型为写操作类型,则将所述SQL访问请求对应的待写入数据写入所述主库中;读取模块,用于如果所述操作类型为读操作类型,根据所述请求标识和读写分离表确定是否需要读写分离,如果需要读写分离,从所述从库中读取所述SQL访问请求对应的数据,所述读写分离表包括需要进行读写分离的SQL访问请求的请求标识。优选的,所述装置还包括:第一更新模块,用于根据读写信息记录表,在所述读写分离表中添加或删除SQL访问请求的请求标识,所述读写信息记录表用于存储所述应用服务器历史发送的SQL访问请求的读写信息;或者,在所述读写分离表中添加或删除用户选择的SQL访问请求。优选的,所述第一更新模块,具体用于从读写信息记录表中选择操作类型为读操作类型且读写信息满足预设读写分离条件的SQL访问请求的请求标识,将所述选择的请求标识添加到所述读写分离表中;或者,所述第一更新模块,具体用于根据读写信息记录表,从所述读写分离表中选择读写信息不满足预设读写分离条件的SQL访问请求的请求标识,将所述选择的请求标识,从所述读写分离表中删除。优选的,所述装置还包括:第二获取模块,用于获取所述SQL访问请求的读写信息;第二更新模块,用于根据所述读写信息,更新所述读写信息记录表中的所述SQL访问请求对应的读写信息。优选的,所述第一获取模块,包括:解析单元,用于解析所述SQL访问请求,从所述SQL访问请求中获取所述SQL访问请求对应的操作类型;处理单元,用于对所述SQL访问请求进行归一化处理,得到处理后的SQL访问请求;计算单元,用于对所述处理后的SQL访问请求进行消息摘要算法第五版MD10类运算,得到所述SQL访问请求的请求标识。优选的,所述读取模块,包括:选择单元,用于从所述多个从库中选择从库;读取单元,用于从所述选择的从库中读取所述SQL访问请求对应的数据。优选的,所述选择单元,具体用于获取所述多个从库中的每个从库的同步时延信息,根据所述每个从库的同步时延信息,从所述多个从库中选择同步时延最小或者同步时延信息满足所述SQL访问请求对应的同步时延要求的从库;或者,所述选择单元,具体用于从所述读写分离表中获取所述SQL访问请求对应的从库,所述读写分离表还包括需要进行读写分离的SQL访问请求对应的从库;或者,所述选择单元,具体用于获取所述多个从库中的每个从库的负载信息,根据所述每个从库的负载信息,从所述多个从库中选择负载最小的从库。在本专利技术实施例中,事先配置读写分离表,读写分离表包括需要进行读写分离的SQL访问请求的请求标识;接收应用服务器发送的SQL访问请求;根据该SQL访问请求,获取该SQL访问请求对应的操作类型和该SQL访问请求的本文档来自技高网...
实现数据库读写分离的方法和装置

【技术保护点】
一种实现数据库读写分离的方法,其特征在于,所述数据库包括主库和从库,所述从库是对所述主库的备份,所述方法包括:接收应用服务器发送的结构化查询语言SQL访问请求;根据所述SQL访问请求,获取所述SQL访问请求对应的操作类型和所述SQL访问请求的请求标识;如果所述操作类型为写操作类型,则将所述SQL访问请求对应的待写入数据写入所述主库中;如果所述操作类型为读操作类型,根据所述请求标识和读写分离表确定是否需要读写分离,如果需要读写分离,从所述从库中读取所述SQL访问请求对应的数据,所述读写分离表包括需要进行读写分离的SQL访问请求的请求标识。

【技术特征摘要】
1.一种实现数据库读写分离的方法,其特征在于,所述数据库包括主库和从库,所述从库是对所述主库的备份,所述方法包括:接收应用服务器发送的结构化查询语言SQL访问请求;根据所述SQL访问请求,获取所述SQL访问请求对应的操作类型和所述SQL访问请求的请求标识;如果所述操作类型为写操作类型,则将所述SQL访问请求对应的待写入数据写入所述主库中;如果所述操作类型为读操作类型,根据所述请求标识和读写分离表确定是否需要读写分离,如果需要读写分离,从所述从库中读取所述SQL访问请求对应的数据,所述读写分离表包括需要进行读写分离的SQL访问请求的请求标识。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据读写信息记录表,在所述读写分离表中添加或删除SQL访问请求的请求标识,所述读写信息记录表用于存储所述应用服务器历史发送的SQL访问请求的读写信息;或者,在所述读写分离表中添加或删除用户选择的SQL访问请求。3.根据权利要求2所述的方法,其特征在于,所述根据读写信息记录表,在所述读写分离表中添加或删除SQL访问请求的请求标识或删除所述读写分离表包括的部分SQL访问请求的请求标识,包括:从读写信息记录表中选择操作类型为读操作类型且读写信息满足预设读写分离条件的SQL访问请求的请求标识,将所述选择的请求标识添加到所述读写分离表中;或者,根据读写信息记录表,从所述读写分离表中选择读写信息不满足预设读写分离条件的SQL访问请求的请求标识,将所述选择的请求标识,从所述读写分离表中删除。4.根据所述权利要求2所述的方法,其特征在于,所述方法还包括:获取所述SQL访问请求的读写信息;根据所述读写信息,更新所述读写信息记录表中的所述SQL访问请求对应的读写信息。5.根据权利要求1所述的方法,其特征在于,所述根据所述SQL访问请求,获取所述SQL访问请求对应的操作类型和所述SQL访问请求的请求标识,包括:解析所述SQL访问请求,从所述SQL访问请求中获取所述SQL访问请求对应的操作类型;对所述SQL访问请求进行归一化处理,得到处理后的SQL访问请求;对所述处理后的SQL访问请求进行消息摘要算法第五版MD5类运算,得到所述SQL访问请求的请求标识。6.根据权利要求1所述的方法,其特征在于,如果所述数据库包括多个从库,所述从所述从库中读取所述SQL访问请求对应的数据,包括:从所述多个从库中选择从库,从所述选择的从库中读取所述SQL访问请求对应的数据。7.根据权利要求6所述的方法,其特征在于,所述从所述多个从库中选择从库,包括:获取所述多个从库中的每个从库的同步时延信息,根据所述每个从库的同步时延信息,从所述多个从库中选择同步时延最小或者同步时延信息满足所述SQL访问请求对应的同步时延要求的从库;或者,从所述读写分离表中获取所述SQL访问请求对应的从库,所述读写分离表还包括需要进行读写分离的SQL访问请求对应的从库;或者,获取所述多个从库中的每个...

【专利技术属性】
技术研发人员:吴炳锡
申请(专利权)人:北京新媒传信科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1