文档章节

【阿里云产品公测】利用PTS服务优化网站数据库读写性能

阿里云官方博客
 阿里云官方博客
发布于 2014/10/15 11:45
字数 1341
阅读 20
收藏 0

【阿里云产品公测】利用PTS服务优化网站数据库读写性能

作者:阿里云用户千鸟


       写这个帖子主要也是因为在用PTS测试网站的时候,手动访问网站进入报错页面,主要原因是数据库连接对象存在问题,导致并发多的时候产生故障,于是简单分析了一下数据库读写的性能优化以及利用PTS的测试结果,整理出来和大家分享一下,顺便参加一下这个活动。 
 
      几乎所有的网站都需要数据库来存储网站中的相关信息,因此在网站应用与数据库的交互过程中,数据库数据读取的性能对网站整体的性能是至关重要的。 


      通常我们在网站编写之初不会考虑数据库的读写效率,主要是因为这时候网站建设的重点并不在数据库读写性能上,而是在数据库读写处理得正确性上,因此很多网站的开发人员一开始并没有重视这个问题,包括我也一样,在之前网站开发中,每次需要读写的操作,利用定义好的数据库连接类new一个对象,然后执行操作即可,至于连接对象的连接池,交给系统己去维护,并没有过多的干预。 
         比如常见的的一种方式如下:

 

       稍微好一点的开发者估计会将数据库与网站分离,然后在数据库上建立一些存储过程来调整开发代码以及数据读写性能,上述代码估计会变成如下形式:

      从个人的开发经验来说,如果网站访问量不大的话,可以不用先进行数据库分离,但事存储过程强烈推荐,不然以后代码维护会很麻烦,至于后期用户增多,数据库分离也就是修改一下配置文件,复制一下数据库中数据而已,操作相对简单。 
      继续讨论数据库读写对程序的影响。 
      比如说两个记录非常大的表User_Table, User_Log(包含用户id字段),比如下列测试代码,均可以根据日志表的用户id读取用户姓名,但在网站编写的时候,如果是你,你会选择哪种方式编码 

      对于数据记录比较大的表,应尽量避免带有笛卡尔操作的数据库查询,不然性能绝对大打折扣;对于嵌套的查询,需要多个数据库连接对象,进行多次查询,对于操作次数频繁的操作,这样无疑又多了很多开销。因此选择哪种方式还应根据实际情况进行具体分析,这也就是为什么网站从初期开始,性能维护都是一个老生常谈的问题,对于不同的用户量,对于不同数据级别的性能优化,方法都不一样,不可能用一种方式适用所有场景。 
       对于大型的网站,估计网站都会有自己的数据库连接池,而且其中的架构也是整个网站的核心之一。为了对比数据库连接池对性能的提升,我自定义了一个最简单的数据库连接池,其中主要的属性为:

      其中的原理就是网站启动时初始化20个可用连接,然后利用一个轮训标记index选择下一个作为连接对象,并记录每个连接对象的使用情况,定义的这个连接池是静态类,同时定义一个静态方法获取连接,在需要数据库读写的时候调用即可,如:

      其中主要就是避免了在newSQLServerCMD时不断的调用Open,Close的耗时操作。 
      建立了两个测试页面,均包含读取数据库内容,选择指定记录进行更新,具体内容如下:


      对于单个包含数据读取的页面,利用阿里的PTS测试结果如下: 
一、建立测试脚本,主要添加事务,设置请求链接,如: 


      普通测试脚本 

      带连接池测试脚本

 
二、快速启动,测试结果 

       可以看到TPS的性能指数从2.95提高到了42.29,这应该算是一个很大的性能提高了。由于仅仅是测试,对于网站的性能,主要还是以TPS为主,所以并没有增加绑定ECS,RDS的性能,因此后两个指数均为0。 
       能力有限,以上分析可能存有不足,敬请纠正。
 


原文地址:http://bbs.aliyun.com/read/178903.html 

微博互动:http://weibo.com/1644971875/BrEhp9OEh?ref= 

参加活动:http://promotion.aliyun.com/act/aliyun/freebeta/ 


© 著作权归作者所有

阿里云官方博客
粉丝 206
博文 2332
码字总数 5560474
作品 0
杭州
程序员
私信 提问
阿里云产品头条(2018年3月刊)

阿里云新产品发布 1、 弹性裸金属服务器 正式商用 (国内站、国际站) 弹性裸金属服务器是一款同时兼具虚拟机弹性和物理机性能及特性的新型计算类产品,是基于阿里云完全自主研发的下一代虚拟...

云攻略小攻
2018/04/26
0
0
现场迁移数据、开源产品文档,阿里云真敢玩!

降价、AI养猪、冬奥会、ET大脑、新品、开源、公测......这些关键词同时出现在了阿里云2018云栖大会·上海峰会的现场。在国人的惯性思维中,越大的企业所需承载的社会责任和期望越大。随着互联...

技术小能手
2018/06/08
0
0
上海云栖大会阿里云产品这波降价“狠”不一般,详情对比走起

在上周刚刚结束的2018云栖大会·上海峰会上,阿里云一口气发布了数款产品,不无例外的是,阿里云延续历届云栖大会风格,在宣布新产品发布之余,宣布多款产品价格下调,包括ECS 企业级实例规格...

云攻略小攻
2018/06/14
0
0
【免费公测】阿里云SSD云盘,不仅仅是IO提速10倍

今天很高兴为大家介绍最新的ECS存储服务:SSD云盘。 SSD云盘基于全SSD存储介质、利用阿里云飞天分布式存储技术,提供数据可靠性99.999%的高性能存储;该产品具备以下特点: l 高性能:单个S...

阿里云官方博客
2015/05/06
1K
5
罗振宇跨年演讲之夜 阿里云护航得到App

在刚刚过去的2017年12月31日,罗振宇在上海举办了《时间的朋友》跨年演讲,这场四个小时的跨年演讲吸引了近万的现场观众和超过百万的直播观众。在观众们聚精会神聆听的同时,得到App、电商平...

木环
2018/01/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

NASA的10条编码规则

关于NASA的10条编程规则,他们曾表示:这些规则的作用就像汽车上的安全带:最初,它们可能有点不舒服,但过了一会儿,它们的使用就变成了第二天性,而没有使用它们就变得不可想象。 Gerard J...

京东云技术新知
1分钟前
0
0
TortoiseSVN图标未显示在Windows 7下

我似乎无法在Windows 7下显示图标,我真的很想念Windows XP。 怎么修好? #1楼 他们在这里展示得很好 您使用的是64位版本的Windows 7以及32位版本的TortoiseSVN吗? 如果是这样,那么它们只会...

javail
25分钟前
11
0
开源播放器

DPlayer

glen_xu
32分钟前
134
0
gitlab Error:Gitaly - load linguist colors - permission denied

报错信息 2020-01-20_14:35:08.43180 time=“2020-01-20T14:35:08Z” level=info msg=“Starting Gitaly” version=“Gitaly, version 0.81.0, built 20180225.183225” 2020-01-20_14:35:0......

JennerLuo
38分钟前
125
0
微信小程序的自动化测试框架

微信发布了小程序的自动化测试框架Minium,提供了多种运行验证方式,其特点: 支持一套脚本,iOS & Android & 模拟器,三端运行 提供丰富的页面跳转方式,看不到也能去得到 可以获取和设置小...

测者陈磊
50分钟前
84
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部