2分钟
课程背景
实验时长:60 分钟
1. 课程背景
1.1 课程目的
性能调优是数据库从业者必须掌握的重要技术,当管理员监测到性能瓶颈出现在数据库层面时,就要定位慢SQL语句,有针对性地进行调优。而性能调优的本质就是对存储引擎、优化器和执行计划的深入理解。本课程让学员在云数据库TencentDB for MySQL实例中生成大规模数据表作为样本,然后针对相同的目标,使用不同的语句进行查询,以及通过索引等方式优化查询,交叉对比执行效率与执行计划,从而使学员掌握对MySQL云数据库执行计划的查看和分析方法,并进一步理解内部优化器的工作原理,以便于针对实际业务环境,结合表规模与结构,写出更高效的SQL语句。
1.2 课前知识准备
1.相关概念
- 腾讯云服务器CVM:腾讯云服务器CVM(Cloud Virtual Machine)是腾讯云提供的可扩展的计算服务,可用于实现传统自建服务器的几乎所有功能。使用CVM避免了使用传统服务器时需要预估资源用量及前期投入,帮助用户在短时间内快速启动任意数量的云服务器并即时部署应用程序。腾讯云CVM支持用户自定义各种资源,包括自定义CPU、内存、硬盘、网络、安全等等,并可以在需求发生变化时快捷方便地调整它们,以适应业务的弹性需求。相关云服务器概念可以参考腾讯云文档中心云服务器概述。
- 腾讯云数据库TencentDB for MySQL:腾讯云数据库MySQL(TencentDB for MySQL)是腾讯云基于世界上最流行的开源数据库MySQL专业打造的高性能云数据库服务,完全兼容MySQL协议,适用MySQL的业务场景都可以使用云数据库。TencentDB for MySQL提供了高性能、高可靠、易用、便捷的MySQL集群服务。整合了备份、扩容、迁移等功能,同时提供新一代数据库工具DMC,不仅经济实惠,而且稳定可靠,易于运维,让用户能够在云中更轻松地设置、操作和扩展关系数据库,是一款安全可靠,易于维护的数据库服务。通过腾讯云数据库MySQL,用户可实现分钟级别的数据库部署和弹性扩展。云数据库MySQL提供备份恢复、监控、容灾、快速扩容、数据传输等全套解决方案,为用户简化数据库运维工作,使用户能更加专注于业务发展。相关概念可以参考腾讯云文档中心云数据库MySQL。
- 腾讯云数据库智能管家DBbrain:数据库智能管家DBbrain(TencentDB for DBbrain)是腾讯云推出的一款为用户提供数据库性能优化、安全管理等功能的数据库智能诊断和优化产品。DBbrain利用机器学习、大数据技术、专家经验引擎等多种手段,快速复制资深数据库管理员的成熟经验,将大量传统手动的数据库运维工作自动化,并通过AI调参能力,提升数据库整体性能,能够为用户提供实时的性能诊断和安全防护,高效地帮助用户定位故障原因,给出优化建议。DBbrain能够服务于云上和云下企业,有效保障数据库服务的安全、稳定及高效运行。相关概念可以参考腾讯云文档中心数据库智能管家DBbrain。
- Linux:Linux是在Unix操作系统基础上开发出来的类Unix操作系统,具备开源、稳定、安全、高效的优良特性,被广泛应用于全球各大企业IT环境。常用的Linux发行版包括CentOS、Ubuntu等多种版本,用户也可以根据自己的实际需要对Linux进行个性化定制开发,以满足业务的各种需求。
- 慢SQL:慢SQL指的是数据库中执行时间很长,超过了一定时间阈值的SQL语句,通常意味着客户端发出的SQL语句长时间没有完成。形成慢SQL的原因一般是SQL语句编写使用不当、数据库存在软硬件性能瓶颈、数据量过于庞大,或者存在并发锁问题等,最终导致了SQL语句无法快速执行完成。数据库使用者需要对慢SQL进行有针对性的优化,提高数据库的整体性能表现。
- 执行计划:数据库接收到客户端的SQL语句并解析后,由数据库优化器确定的最优的取得数据的方法,被称为执行计划。由于数据库中的数据存储位置不连续,分布不均匀,同时数据库本身具备索引、分区等加速查询的方式,因此一条SQL语句在数据库内部的实现方法往往有多种,例如可以通过全表扫描遍历所有数据,也可以通过索引扫描数据位置进行精确定位。优化器根据数据库统计信息,判断确定出来的最优化方法叫做执行计划。执行计划是优化器根据当前的数据库统计信息得出的,因此不一定是最优化的方案,例如统计信息不准确、数据结构不合适、SQL语句编写不科学等,都会导致执行计划有很大的优化空间,需要管理员介入调优。
2.相关原理
- 购买腾讯云服务器CVM,安装
mysql
客户端软件,作为腾讯云TencentDB for MySQL数据库实例的客户端。连接数据库实例后创建若干张表,并插入测试数据。对数据表进行多种常见的基本查询(普通SELECT
、函数、多表连接等),通过MySQL
本身的SHOW PROFILE
及EXPLAIN
等方式,统计执行时间,查看并分析执行计划。根据分析内容进行SQL语句的改写与数据表索引结构的优化,执行优化后的语句,达到提高性能的目的为止。
学员评价