搜索
首页数据库mysql教程从APM角度上看:NoSQL和关系数据库并无不同

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和关系数据库并无不同

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

从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

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Spring Boot与NoSQL数据库的整合使用Spring Boot与NoSQL数据库的整合使用Jun 22, 2023 pm 10:34 PM

随着互联网的发展,大数据分析和实时信息处理成为了企业的一个重要需求。为了满足这样的需求,传统的关系型数据库已经不再满足业务和技术发展的需要。相反,使用NoSQL数据库已经成为了一个重要的选择。在这篇文章中,我们将讨论SpringBoot与NoSQL数据库的整合使用,以实现现代应用程序的开发和部署。什么是NoSQL数据库?NoSQL是notonlySQL

数据库系统的构成包括哪些数据库系统的构成包括哪些Jul 15, 2022 am 11:58 AM

数据库系统由4个部分构成:1、数据库,是指长期存储在计算机内的,有组织,可共享的数据的集合;2、硬件,是指构成计算机系统的各种物理设备,包括存储所需的外部设备;3、软件,包括操作系统、数据库管理系统及应用程序;4、人员,包括系统分析员和数据库设计人员、应用程序员(负责编写使用数据库的应用程序)、最终用户(利用接口或查询语言访问数据库)、数据库管理员(负责数据库的总体信息控制)。

PHP和NoSQL数据库的应用PHP和NoSQL数据库的应用Jun 19, 2023 pm 03:25 PM

在现代的网络应用程序开发中,PHP和NoSQL数据库已经成为了非常受欢迎的技术选择。在过去,PHP曾被广泛应用于开发动态网站和Web应用程序,而NoSQL数据库则是最近才出现的全新的数据存储技术,它提供了更加灵活和可扩展的解决方案。在这篇文章中,我们将会探讨PHP和NoSQL数据库在实际应用中的情况。PHP是一种服务器端编程语言,最初

使用PHP和MongoDB实现NoSQL数据库,满足不同用户需求使用PHP和MongoDB实现NoSQL数据库,满足不同用户需求Jun 26, 2023 pm 11:39 PM

NoSQL(NotOnlySQL)数据库是近年来快速发展的一类数据库,与传统关系型数据库相比,其具有更好的可扩展性和性能,并支持更多的数据类型和数据存储方式。其中,MongoDB是一款使用文档数据库模型的NoSQL数据库,被广泛应用于Web应用、移动应用、物联网设备等领域。本文将介绍如何使用PHP编写MongoDB数据库的基本操作,并通过实例演示如何满足

什么是apm什么是apmSep 08, 2023 pm 04:18 PM

APM是一种软件工程领域的术语,它指的是应用性能管理,APM是一种监测、诊断和优化应用程序性能的方法和工具集,主要目标是实时监测应用程序的性能,并提供对应用程序的关键性能指标进行可视化和分析的能力,可以帮助开发人员和运维团队追踪应用程序在不同层面的性能问题,以便及时发现和解决潜在的性能瓶颈和故障。

数据库的什么是指数据的正确性和相容性数据库的什么是指数据的正确性和相容性Jul 04, 2022 pm 04:59 PM

数据库的“完整性”是指数据的正确性和相容性。完整性是指数据库中数据在逻辑上的一致性、正确性、有效性和相容性。完整性对于数据库系统的重要性:1、数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据;2、合理的数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能;3、完善的数据库完整性有助于尽早发现应用软件的错误。

使用java的Math.toRadians()函数将角度转换为弧度使用java的Math.toRadians()函数将角度转换为弧度Jul 24, 2023 pm 01:47 PM

使用Java的Math.toRadians()函数将角度转换为弧度在数学和物理中,角度和弧度是两种常用的角度测量单位。有时候我们需要在这两个单位之间进行转换。在Java中,我们可以使用Math类的toRadians()函数将角度转换为弧度。Math.toRadians()是Math类中的一个静态方法,它接受一个以度数表示的角度值,并返回相应的弧度值。下面是使

探讨安卓系统与Linux内核之间的关系探讨安卓系统与Linux内核之间的关系Mar 14, 2024 pm 12:48 PM

安卓系统与Linux内核是息息相关的两个实体,它们之间的关系紧密而又复杂。在安卓系统中,Linux内核充当着重要的角色,为安卓系统提供了底层的硬件驱动和系统调用支持。本文将探讨安卓系统与Linux内核之间的关系,以及它们是如何交互、协同工作的,同时提供一些具体的代码示例。安卓系统是基于Linux内核开发的移动操作系统,主要用于智能手机、平板电脑等移动设备。L

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。