前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实测影响数据库性能的因素有哪些?

实测影响数据库性能的因素有哪些?

作者头像
希望的田野
发布2020-03-10 18:38:22
1.1K0
发布2020-03-10 18:38:22
举报
文章被收录于专栏:信息化漫谈信息化漫谈

每个女孩都是天使,每个女孩都美丽芬芳。在这个特别的日子里,温馨的女人节骄傲的向我们走来,祝女神节日快乐!

有同事向我们反馈,数据库的服务器CPU利用率100%,怀疑主机的配置不够,今天我们来测试影响数据库性能的因素有哪些?用实际操作为大家揭开心中的困惑。

一、我们用Mysql作为测试对象

1、Mysql有三个版本:percona、mysql、mariadb。三个版本在sql语法、api接口均兼容,出现三个版本的原因还是商业原因。mysql被oracle收购后,有闭源收费的可能性。

2、CentOS中默认为mariadb。在开源项目中,建议首选percona,次选mariadb

二、我们安装Mysql官方版测试

为了测试数据更具有代表性,我们用Mysql官方版进行测试。测试环境为:CentOS 7.6。

1、因CentOS默认将mysql替换成了mariadb,如需要安装mysql官方版,需要替换数据源,网上的操作文档很多,不再详述。

2、数据库的测试软件用Mysql的自带软件MysqlSlap。

三、影响Mysql性能的因素,实测

1、服务器的cpu、内存配置

A、当前这台云主机的配置为1vCPUs | 2GB | CentOS 7.6 64位 | 40G SATA盘。

经过多次实测,测试数据如下:

执次5000次的自动sql查询,共用时2.88秒。

结论数据:在该配置下,每秒能处理5000/2.877=1737次简单sql查询。通俗一点讲,也是就最大每秒支持1737次的简单select语句并发操作。注:连接池的数量可以通过命令修改,默认的连接数为151,我为了测试修改为了1024。

B、接下来,我们将服务器的配置提升至16vCPUs | 64GB

经过多次实测,测试数据如下:

执次5000次的自动sql查询,共用时0.928秒。

结论数据:在该配置下,性能提升很明显,每秒能处理5000/0.928=5417次简单sql查询。

2、服务器的磁盘类型配置

我们将这台云主机的配置修改为1vCPUs | 2GB | CentOS 7.6 64位 | 40G SSD盘。

执次5000次的自动sql查询,共用时2.567秒。

结论数据:在该配置下,每秒能处理5000/2.567=1947次简单sql查询。

3、数据库的优化

我们创建了一个拥有104万条记录的数据表T1、T2表(T1表带索引,而T2表不带索引),进行测试。配置同样为,1vCPUs | 2GB | CentOS 7.6 64位 | 40G SSD盘。

首先在T2查询第5万条记录,用时0.478秒,相当于这0.478只执行了一条sql语句。

接着在T1查询第5万条记录,用时0.001秒。同样的数据内容,仅仅是因为T1有索引,因此快了478倍。非常惊人的提升。

4、数据库架构的合理性

随着数据库数据量的增加,单库难以满足横向扩展的要求。比较经典的数据库架构如下图,写数据走红线(左边部份),读数据走黄线(右边部份)。

其中左边,dbm157、dbm158为主备关系,采用keepalive+DRBD进行心跳+数据底层复制。而dbm157与159、160、161采用mysql replication进行日志级的复制。

其中右边lvs1、lvs2也为主备关系,前端应用服务器通过读lvs进行底层159、160、161的负载均衡。

在项目中可采用MyCAT中间件进行读写分离、读的负载均衡。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信息化漫谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档