Skip to Content
CockroachDB:权威指南
book

CockroachDB:权威指南

by Guy Harrison, Jesse Seldess, Ben Darnell
May 2025
Intermediate to advanced
488 pages
6h 44m
Chinese
O'Reilly Media, Inc.
Content preview from CockroachDB:权威指南

第 15 章 集群优化 集群优化

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

无论你负责什么数据库、框架、应用程序或设备,总有人希望它更快。这可能是计算机科学家面临的最持久的挑战之一。可以想象,当艾伦-图灵在二战期间创造出突破性的解码机器后,他的上司说:"干得好,艾伦,但还能更快吗?

性能优化是一项长期的工作,这并不奇怪。为用户提供反应灵敏的应用程序并保持批处理的可接受吞吐量一直都很重要。然而,在现代社会,性能变得更加重要。 在互联网时代,面向客户的应用程序如果性能不佳,就会导致客户放弃在线服务,直接影响企业的盈利。在 Cloud 时代,性能优化就是成本优化--性能不佳的应用程序将消耗更多的云计算资源,从而增加您的月账单。

调音与消防

性能优化通常有两种形式:

性能消防

性能出现严重问题,必须立即解决。

性能调整

该系统经过系统优化,以提高其性能并降低运行成本。

性能调优做得越多,需要进行的性能救火工作就越少。不过,对于几乎所有数据库管理员来说,都需要了解如何在两种模式下运行。

在 "灭火 "模式下,您通常会试图找到 "出错 "的地方--这可能是对群集造成拖累的新 SQL 语句或事务、硬件或节点故障,或者是应用程序负载变化导致的性能问题。

在调优模式下,您需要系统地处理数据库集群的各个层面,确保工作负载得到优化,软件和硬件组件配置正确。一般来说,在调优过程中最好 "向下 "处理数据库堆栈的各层。早在第 2 章中,我们就介绍了这些层级;图 15-1概括了这些层级。

Software Layers
图 15-1. CockroachDB 软件层

每一层的负载由上一层的配置决定。因此,在完成上层的调整之前,调整下层是没有意义的。例如,除非确保拥有所有必要的索引,否则就没有必要考虑增加节点的大小。添加索引是一项简单快捷的工作,不需要停机时间或额外成本。根据您的配置,向现有群集添加节点可能是一个耗时且昂贵的过程。

因此,在本章讨论集群优化时,我们将通过应用程序的各层来进行。 即使在灭火时,依次查看集群的每一层也是有意义的,因为需要灭火的很多问题都涉及工作负载的变化,而是最高层。

优化工作量

到目前为止,对 集群性能影响最大的是应用程序产生的工作负载。调整不当的 SQL 可能比调整良好的 SQL 产生更高的逻辑和物理资源需求。特别是,如果没有有效的索引,任何工作负载都不可能得到扩展和优化。

我们在第 5 章专门讨论了高性能数据库模式的设计,在第 6 章专门讨论了有效的应用程序实施,在第 8 章专门讨论了 SQL 的调整。在理想的世界里,应用程序在投入生产前就会得到完美的调整。在现实世界中,未经调优的 SQL 语句、意外的数据分布以及高于预期的争用情况往往会导致应用程序调优问题在生产系统中才显现出来。

在应用程序开发过程中,调整过程包括确保单个 SQL 语句和事务的优化和正确性。在生产过程中,调优过程则有些不同--我们要查找那些消耗系统资源的比例似乎高于预期的 SQL 语句和事务,并寻找可以解决这些问题的方法。

检测有问题的工作量

面对 "缓慢 "的数据库,我们一般会首先查看系统的工作负载。毕竟,数据库的 "慢 "很可能与一条或多条性能低于预期的 SQL 语句有关,因此我们可能首先要找到这些 SQL ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Nanosatellites

Nanosatellites

Rogerio Atem de Carvalho, Jaime Estela, Martin Langer
Trino:权威指南,第二版

Trino:权威指南,第二版

Matt Fuller, Manfred Moser, Martin Traverso
软件工程基础

软件工程基础

Nathaniel Schutta, Dan Vega

Publisher Resources

ISBN: 9798341659186