0

0

从APM角度上看:NoSQL和关系数据库并无不同

php中文网

php中文网

发布时间:2016-06-07 15:35:32

|

1184人浏览过

|

来源于php中文网

原创

michael kopp拥有十年以上c++、java/jee的架构及开发经验,现compuware技术策略师,专攻大规模产品部署的架构和性能。 以下为译文: 传统企业数据库供应商经常提出NoSQL缺乏专业的监视和管理工具。它们的论点是:企业应用程序需要对数据库进行精细的调优和监

michael kopp拥有十年以上c++、java/jee的架构及开发经验,现compuware技术策略师,专攻大规模产品部署的架构和性能。

以下为译文:

传统企业数据库供应商经常提出NoSQL缺乏专业的监视和管理工具。它们的论点是:企业应用程序需要对数据库进行精细的调优和监视以保证性能和运转的稳定。NoSQL供应商的观点则是:这种程度的缺乏还并不能在解决方案上帮助到RDBMS。许多NoSQL供应商也尝试从它们提供的监视和管理软件等级上进行区分,比如:Cassandra、MongoDB、Hbase等等。当然两者都是正确的 —— 特别是性能方面的管理和监视是非常重要的,但是NoSQL供应商同样犯了RDBMS已经犯了10多年的错误:忽略了应用程序的本身。

针对数据库的应用性能管理

最重要的不是数据库本身的性能,而是使用数据库的应用程序。应用程序的逻辑决定了使用数据库的方式,当然也有很多途径来调优数据库用以掩饰应用程序本身的问题。所以我们需要监视和优化应用程序的使用模式,同时应用程序逻辑又由输入数据或者是大多数情况下与用户交互的方式决定;所以我们必须分析用户的行为,而用户的操作决定了数据库的使用方式。另一方面,我们需要明白这些行为对数据库的影响。这里的重点在于获悉当数据的性能达到最高标准,却仍然成为应用程序的主要瓶颈 —— 它们是否被错误的使用或者是使用了一个错误的访问模式。在这上面不管是RDBMS还是NoSQL数据库都有着相同的遭遇。因此作为工程师,你需要做应用程序的性能分析和管理:

首先我们需要知道这个慢下来的事务是不是有一个普遍的性能问题,并且受到终端用户的影响:

从APM角度上看:NoSQL和关系数据库并无不同

第二步对变慢或者性能问题进行高等级的抽离。当然有很多方法可以实现这个目的,但是基本都是故障域隔离(fault domain isolation)的一种。

从APM角度上看:NoSQL和关系数据库并无不同

事务流显示我们有15%被用在了数据库等待上(点击查看大图,以下同)

 

从APM角度上看:NoSQL和关系数据库并无不同

这个事务流显示Business Backend正在调用一个Cassandra数据库集群

这就可以让我们知道是否我们为等待数据库而花费时间。而这里我们看到了这个现象并没有因为传统数据库或者是类Apache Cassandra的NoSQL数据库而变得不同。

这里的重点在于数据库是否是主要原因,这并一定是数据库本身的问题,也能是应用程序的使用问题。下面就必须检查用法和访问模式:

从APM角度上看:NoSQL和关系数据库并无不同

这里显示了在一个特殊事务类型中执行的选择语句

堆友
堆友

Alibaba Design打造的设计师全成长周期服务平台,旨在成为设计师的好朋友

下载

从APM角度上看:NoSQL和关系数据库并无不同

上图显示了在一个特殊事务中Cassandra数据库语句在所有参与服务器中的执行情况

这里我们就会发现性能低下的原因是因为我们在单个事务中执行了太多的语句,或者是读取了太多的数据。如果真是这个情况的话我们需要检查应用程序的逻辑,并需要开发者对其进行弥补。而这个开发者肯定想知道哪条语句是在什么地方执行哪种特殊的任务,以及为什么会发生这个情况。

从APM角度上看:NoSQL和关系数据库并无不同

上图显示了单事务(PurePath)以及里面的Cassandra执行语句

如果一个特殊的语句导致性能下降,那么很可能是数据库问题,我们可以寻找DBA解决。而这种情况下NoSQL方案的不同之处是你通常可以拥有一个数据库集群,所以需要知道的是问题是否是因为单个节点产生的。DBA将去了解访问模式是否被良好的分配到集群中,或者只是分配到集群中的一个点。

从APM角度上看:NoSQL和关系数据库并无不同

上图显示了Cassandra服务器Node3比其它节点消耗了更多的等待和I/O时间

而事实上这个分析在JDBC、ADO、Cassandra(或者其它的NoSQL解决方案)之间并没有什么不同。

总结

经过大量在SQL语句和索引上的研究后发现:最需要优化的地方总是在应用程序以及应用程序使用数据库的方法上。而SQL Tuning总会添加复杂性,一般只作为差用程序或者数据结构设计的调剂。而在NoSQL领域数据库语句的调优已成为过去,但数据结构设计却保留着它的重要性。同时传统上应该在数据库实现的逻辑现已转移至应用层,这使得应用程序的设计较之前更为重要。

NoSQL or Traditional Database: From an APM Perspective There Isn’t Really Much Difference (编译/仲浩 审校/王旭东)

欢迎关注@CSDN云计算微博,了解更多云信息。

market@csdn.net

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

150

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

88

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

90

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

61

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

493

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

16

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

12

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

5

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.4万人学习

golang和swoole核心底层分析
golang和swoole核心底层分析

共3课时 | 0.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号