APP下载

基于分布式的数据库分库与分表策略研究

2020-07-04谢振华

电脑知识与技术 2020年14期
关键词:数据库

谢振华

摘要:随着信息技术和社会的进步,互联网用户以井喷的方式增长,不断增长的数据要存储在数据库中,原先单个数据库就可以存储用户数据,现在需要更多的数据库才能存储用户数据,那么基于分布式的数据库应用就产生了。将数据库进行分库与分表完成数据存储,也是目前数据存储的重要方式。本文提出了基于分布式的数据库分库与分表的策略,通过该策略,可以降低服务器成本,提高企业竞争力。

关键词:分库;分表;数据库

中图分类号:G64 文献标识码:A

文章编号:1009-3044(2020)14-0060-01

1引言

在分布式系统中的某些功能模块数据的存储是非常大的,比如用户短信存储模块,这时候一个数据库可能受物理硬件或者软件的性能无法存储成功,此时,我们就可以考虑将数据库进行分库,数据表进行分表存储。

2实现方案

在介绍数据库的分库与分表实现方案之前,我们先来探讨数据库的基本操作,数据库的基本操作,主要是插人,更新,删除和查询等操作,其中查询操作是可读操作,插入,更新和删除是可写操作。我们按照数据库的操作流程,应该是先采取插入操作生成数据表,然后对象数据库进行查询可读操作,然后对数据库进行更新,删除和插入操作。因此,为了便于理解,我们首先来介绍数据库插入时,如何进行数据库的分库与分表操作,如下图1所示。

如上图1所示,当数据库客户端进行数据插入时,将InsertSQL语句发送给数据库代理服务器,数据库代码服务器查看,数据库任务分配表,原则是硬件性能越好,分配条目数越多,然后进行任务分配,分配表结构,如表1所示。

分配时,按序号先后顺序进行任务分配,当任务分配之后,数据库代理服务器就将Insert SQL语句转发给数据库服务器,数据库服务器接收到命令之后,就进行数据库的插入操作。数据库代理服务器在进行任务分配的同时,数据库代理服务器生成数据库存储的路由表,目的是为了数据库的后续操作做准备。

设计的数据库存储的路由表,如表2所示。

在数据库插入完成之后,代理服务器的路由表也生成完毕,那么接下来的数据库操作就依照该路由表进行操作。

当数据库更新时,那么更新操作,根据主键Ⅲ号,可以很方便地找到对应的IP地址,然后将该update更新语句发送给对应的服务器执行更新操作。

当数据库进行删除操作时,根据主键ID号,也可以很方便地找到对应的IP地址,然后将Delete语句发送给对应的服务器执行删除操作,同时要更新任务分配表,下次该库可以存储一条数据。

当进行数据库查询时,如果查询条件是主键或者是重要查询列时,我们都可以直接找到对应分库的1P地址,进行单播查询,但是當查询条件不是主键或者重要查询列时,我们就只只能通过轮训的方式进行查询或者进行广播方式进行查询,无论是轮训或者广播,我们都需要汇总响应消息,得到查询结果,为查询尽量简单,我们必须慎重设置重要查询列,一定要是查询中最常见的字段,比如短信存储时,我们一般设置时间是重要查询列。

3总结

在分布式系统中,数据库的存储信息量将会越来越大,为节约成本,我们采用廉价的硬件进行数据库的分库存储,也是目前重要的实施方案,因此研究数据库的分库与分表方案有很重要的现实意义的。本人提出的基于路由表的解决方案,灵活,自由度高,有不太合理的地方,还请多多批评指正。

猜你喜欢

数据库
超星数据库录入证
本刊加入数据库的声明
两种新的非确定数据库上的Top-K查询
国外数据库高被引论文排行TOP10
国内主要期刊数据库