数据库性能优化的目标是通过充分利用系统资源来最小化查询的响应时间。对这些资源的最佳利用包括最大限度地减少网络流量、磁盘 I/O 和 CPU 时间。这个目标只能通过理解数据的逻辑和物理结构、系统上使用的应用程序以及数据库的冲突使用如何影响性能来实现。实际上,数据库性能优化是一项系统工程,需要使用系统化分析方法,从硬件、软件和应用场景等多个相关联的维度深入分析、评估与优化,在数据库系统的架构阶段、设计阶段、开发阶段、部署阶段、运行阶段等各环节中去寻找性能问题的瓶颈和解决方案。
本文精选了HeapDump性能社区中的8篇数据库性能优化相关文章,这些文章内不仅包含了影响数据库性能的因素,数据库性能评估标准、优化方法的内容,还介绍了一些数据库设计原则和编程技巧,并且记录了一些或大或小的实战案例,帮助大家快速了解数据库性能优化,掌握一些实操技能。
1.带你重走 TiDB TPS 提升 1000 倍的性能优化之旅
作者: TiDB_Robot
作者介绍: TiDB是一个开源的NewSQL数据库,支持混合事务和分析处理(HTAP)工作负载。它与MySQL兼容,并且可以提供水平可扩展性、强一致性和高可用性。它主要由PingCAP公司开发和支持,并在Apache 2.0下授权。TiDB现已正式入驻HeapDump性能社区,未来将会分享更多数据库性能优化相关的优质文章。
文章链接: https://heapdump.cn/article/3021827
精彩导读: 性能优化这个事情核心只有一句话,用户响应时间去哪儿了?性能优化很困难的原因在于,为了定位用户响应时间在各个模块的分布,需要对系统的各个部件进行测量和分析,从底层硬件,CPU、IO、网络到上层应用架构,应用代码跟数据库的交互方式都需要涉及。本文第一部分介绍了一下性能优化的通用的方法,第二部分讲了一个实际案例。
用户响应时间
性能优化的第一个概念是用户响应时间。用户响应时间是用户在使用一个业务系统的时候,发起一个请求,这个请求返回总体消耗的时间为用户响应时间。一个典型的用户响应时间的分布如下图:
从时序图看,一个用户响应时间可能包括:
1.用户请求的到达应用服务器的网络时间
2.应用服务器本身业务逻辑处理时间
3.应用服务器跟数据库服务器之间交互消耗的网络的时间
4.数据库多次处理 SQL 的时间
5.应用服务器返回用户数据的网络时间
整个链路上来看,会涉及到网络、应用服务器和数据库这几个重要的部件。只要知道户响应时间在每个模块的分布,我