SQL 必知必会
陈旸
清华大学计算机博士
73338 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 50 讲
第一章:SQL语法基础篇 (19讲)
SQL 必知必会
15
15
1.0x
00:00/00:00
登录|注册

20丨当我们思考数据库调优的时候,都有哪些维度可以选择?

思考和分析数据库调优
数据库调优的维度选择
确定调优目标的方式
数据库调优的目标
数据库调优的维度

该思维导图由 AI 生成,仅供参考

从这一篇开始,我们正式进入了 SQL 性能优化篇。在这一模块中,我们会关注如何提升 SQL 查询的效率。你可以思考一下,如何你是一名 DBA 或者开发人员,都有哪些维度可以进行数据库调优?
其实关于数据库调优的知识点非常分散。不同的 DBMS,不同的公司,不同的职位,不同的项目遇到的问题都不尽相同。为了能让你对数据库调优有一个整体的概览,我把这些知识点做了一个梳理,希望能对你有一些帮助。
今天的课程你需要掌握以下几个方面的内容:
数据库调优的目标是什么?
如果要进行调优,都有哪些维度可以选择?
如何思考和分析数据库调优这件事?

数据库调优的目标

简单来说,数据库调优的目的就是要让数据库运行得更快,也就是说响应的时间更快,吞吐量更大。
不过随着用户量的不断增加,以及应用程序复杂度的提升,我们很难用“更快”去定义数据库调优的目标,因为用户在不同时间段访问服务器遇到的瓶颈不同,比如双十一促销的时候会带来大规模的并发访问;还有用户在进行不同业务操作的时候,数据库的事务处理和 SQL 查询都会有所不同。因此我们还需要更加精细的定位,去确定调优的目标。
如何确定呢?一般情况下,有两种方式可以得到反馈。

用户的反馈

用户是我们的服务对象,因此他们的反馈是最直接的。虽然他们不会直接提出技术建议,但是有些问题往往是用户第一时间发现的。我们要重视用户的反馈,找到和数据相关的问题。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

数据库调优的关键步骤包括逻辑查询优化、物理查询优化和使用缓存技术。在逻辑查询优化方面,需要重点关注SQL语句的重写和等价变换,以及索引的创建和使用。物理查询优化则涉及确定访问路径和执行计划,需要考虑单表扫描、表连接方式和多表连接的路径选择。此外,使用Redis或Memcached作为缓存可以提升查询效率。另外,库级优化可以通过读写分离、分库分表等方式来降低数据库负载。在思考数据库调优时,需要从选择DBMS和表设计、SQL查询优化和外援技术等维度进行考虑。综合而言,数据库调优需要综合考虑逻辑和物理查询优化以及缓存和库级优化等多个方面,以提升数据库性能。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《SQL 必知必会》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(33)

  • 最新
  • 精选
  • Coool
    先选择好的装备,再选择好的作战路线,必要时请外援

    作者回复: 对的 总结的不错

    2019-10-23
    32
  • 庞鑫华
    老师,网上的说法是5.5之后都建议使用InnoDB了,不建议MyIsam了,这点您怎么看

    作者回复: 我觉得不能一概而论。需要先了解InnoDB和MyISAM各自的特点: InnoDB支持事务和行级锁,是MySQL默认的存储引擎 MyISAM只支持表级锁,非事务安全性,更适合读取数据库的情况, 小型的应用,如果需要大量的SELECT查询,可以考虑MyISAM。如果是事务处理应用需要选择InnoDB。 两种引擎各有特点,另外在MySQL中不同的数据表也可以选择不同的存储引擎。

    2019-07-26
    3
    17
  • 盒子妮
    上面有个朋友说的很对,还可以通过修改参数进行优化。另外,还可以从硬件层面考虑优化

    作者回复: 很好的分享

    2019-08-02
    7
  • grey927
    老师你好,这部分内容,希望有些具体的实验用例,或者您可以推荐一些比较好的将数据库性能优化的书么?

    作者回复: 这个部分算是优化篇的概览,所以知识点比较多。我会在后面的章节陆续进行介绍的。

    2019-07-26
    3
    6
  • zw_learn_2
    老师你好,请问比较好用的业务应用服务器资源监控工具有哪些?

    作者回复: 可以考虑Zabbix, OpManager

    2019-08-01
    5
  • 张磊
    老师,您好,我想问下, 哪里 可以 买到 , 你专门 比较 系统的 讲解 mysql 优化的 课程 , 或者 您给 推荐下 买 哪个 课程 可以 学习到这方面的 课程 。 谢谢。 期待您的 回复。

    作者回复: 除了买课,还有两种比较直接的方式,一个是看大厂最新的应用,比如网易,微众银行的MySQL优化实践分享。还有一个方式就是能参与到真实的项目中来,多交流

    2019-11-06
    3
    3
  • 许童童
    前者可以理解为单兵作战,尽可能提升单兵的能力。 后者相当于直接组团,一起对外作战。

    作者回复: 对 可以这么理解

    2019-07-26
    3
  • luck_tou
    老师提到的宏观角度非常重要,平时我接收的一般都是零散的知识点,能有个框架把他们归类记忆非常重要

    作者回复: 嗯 有个框架方便梳理

    2020-03-26
    2
  • 骑行的掌柜J
    对数据库优化有了一个概览 谢谢陈老师

    作者回复: 谢谢骑行的掌柜

    2019-12-20
    2
  • ballgod
    老师会有专门的讲解B-数和B+数还有红黑树之类的章节吗? 网上看到好多关于为什么mysql使用B+数的问题,很多讲的不是很清楚。

    作者回复: 有的,后面的章节就有讲到B+树

    2019-12-02
    2
收起评论
显示
设置
留言
33
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部