IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL高性能实战——part5——查询性能优化 -> 正文阅读

[大数据]MySQL高性能实战——part5——查询性能优化

前言:
此文借鉴《MySQL高性能》一书,还有MySQL官方文档,笔者将通过自身的一些实战经验和阅读习惯对本书进行一个总结,整理,归纳出企业级开发中常用的优化案列和部分概念!!
?

官方文档地址:
https://dev.mysql.com/doc/refman/5.7/en/
?

本文:由于数据库知识庞大且复杂,笔者将以,以下几个模块进行拆分解读,请大家按需自取!!!

  1. MySQL高性能实战——part1——MySQL架构与历史
  2. MySQL高性能实战——part2——Schema和数据类型优化
  3. MySQL高性能实战——part3——分析SQL,定位慢SQL(性能优化的前提)
  4. MySQL高性能实战——part4——高性能索引使用
  5. MySQL高性能实战——part5——查询性能优化
  6. MySQL主从复制与读写分离,分库分表

?

?

?

版本说明:
不同数据库版本可能对SQL的执行以及部分特性产生巨大的影响,所以在这里明确一下版本
参考书籍版本:5.1或5.5
实战案列实际使用版本:5.7
?

MySQL高性能实战——part5——查询性能优化

还没写完,后面持续更新

前言

前面的章节我们介绍了如何设计最优的库表结构、如何建立最好的索引,这些对于高性能来说是必不可少的。但这些还不够—还需要合理的设计查询。如果查询写得很糟糕,即使库表结构再合理、索引再合适,也无法实现高性能。
?

査询优化、索引优化、库表结构优化需要齐头并进,一个不落。在获得编写 MySQL査询的经验的同时,也将学习到如何为高效的查询设计表和索引。同样的,也可以学习到在优化库表结构时会影响到哪些类型的查询。
?

本章将从查询设计的一些基本原则开始——这也是在发现查询效率不高的时候首先需要考虑的因素。然后会介绍一些更深的查询优化的技巧,并会介绍一些 MySQL优化器内部的机制。将展示 MySQL是如何执行查询的,你也将学会如何去改变一个查询的执行计划。最后,我们要看一下 MySQL优化器在哪些方面做得还不够,并探索查询优化的模式,以帮助 MySQL更有效地执行查询。
本章的目标是帮助大家更深刻地理解 MySQL如何真正地执行查询,并明白高效和低效的原因何在,这样才能充分发挥 MySQL的优势,并避开它的弱点。
?

?

1.为什么查询速度会慢

在尝试编写快速的查询之前,需要清楚一点,真正重要是响应时间。如果把查询看作是个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间如果要优化查询,实际上要优化其子任务,要么消除其中一些子任务,要么减少子任务的执行次数,要么让子任务运行得更快.
?

通常来说查询的生命周期大致可以按照顺序来看:

  1. 从客户端
  2. 到服务器
  3. 然后在服务器上进行解析
  4. 生成执行计划
  5. 执行
    1. 可以认为是整个生命周期中最重要的阶段
    2. 这其中包括了大量为了检索数据到存储引擎的调用以及调用后的数据处理,包括排序、分组等


在完成这些任务的时候,查询需要在不同的地方花费时间包括:

  1. 网络
  2. CPU计算
  3. 生成统计信息
  4. 执行计划锁等待(互斥等待)等操作
  5. 尤其是向底层存储引擎检索数据的调用操作,这些调用需要在内存操作、CPU操作和内存不足时导致的IO操作上消耗时间

根据存储引擎不同,可能还会产生大量的上下文切换以及系统调用**。在毎一个消耗大量时间的査询案例中,我们都能看到一些不必要的额外操作、某些操作被额外地重复了很多次、某些操作执行得太慢等。优化查询的目的就是减少和消除这些操作所花费的时间。**
再次申明一点,对于一个查询的全部生命周期,上面列的并不完整。这里只是想说明了解查询的生命周期、清楚查询的时间消耗情况对于优化査询有很大的意义。有了这些概念,我们再一起来看看如何优化查询。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 16:21:05  更:2022-03-03 16:23:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:00:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码