热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

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

MichaelKopp拥有十年以上C++、JavaJEE的架构及开发经验,现Compuware技术策略师,专攻大规模产品部署的架构和性能。以下为译文:传统企业数据库供应商经常提出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数据库都有着相同的遭遇。因此作为工程师,你需要做应用程序的性能分析和管理:

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

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

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

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

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

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

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

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

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

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

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

上图显示了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

推荐阅读
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • Oracle字符集详解:图表解析与中文乱码解决方案
    本文详细解析了 Oracle 数据库中的字符集机制,通过图表展示了不同字符集之间的转换过程,并针对中文乱码问题提供了有效的解决方案。文章深入探讨了字符集配置、数据迁移和兼容性问题,为数据库管理员和开发人员提供了实用的参考和指导。 ... [详细]
  • 本文将深入探讨MySQL与MongoDB在游戏账户服务中的应用特点及优劣。通过对比这两种数据库的性能、扩展性和数据一致性,结合实际案例,帮助开发者更好地选择适合游戏账户服务的数据库方案。同时,文章还将介绍如何利用Erlang语言进行高效的游戏服务器开发,提升系统的稳定性和并发处理能力。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 在将Web服务器和MySQL服务器分离的情况下,是否需要在Web服务器上安装MySQL?如果安装了MySQL,如何解决PHP连接MySQL服务器时出现的连接失败问题? ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • 提升MySQL数据库架构性能的策略与方法
    为了提升MySQL数据库架构的性能,本文探讨了多种策略与方法。首先,分析了影响数据库性能的关键因素,并详细阐述了数据库结构优化的重要性。接着,介绍了数据库设计的基本步骤,包括第一、第二和第三范式的应用,以及反范式化设计的场景。此外,还讨论了数据库物理设计的关键要素,如表定义、索引设计和存储引擎选择,以确保高效的查询响应和数据管理。 ... [详细]
  • 我了解的差别有: ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 前两天有位朋友邀请我回答个问题,为什么MongoDB(索引)使用B-树而Mysql使用B+树?我觉得这个问题非常好,从实际应用的角度来学习数据结构,没有比这更好的方法了。因为 ... [详细]
  • RabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP,SMTP,STOMP,也 ... [详细]
  • Hadoop的分布式架构改进与应用
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Redis概念
    Redis概念:redis是一款高性能的NOSQL系列的非关系型数据库什么是NOSQLNOSQL(NoSQLNotOnlySQL),意即不仅仅是SQL,是一项全新的数据库理念, ... [详细]
  • 本文详细介绍了如何在PHP中记录和管理行为日志,包括ThinkPHP框架中的日志记录方法、日志的用途、实现原理以及相关配置。 ... [详细]
author-avatar
刻骨铭心2502914183_610
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有