Mysql 查询优化

1、查询优化技术

      1)查询重用

             1、查询结果的重用(nosql缓存查询结果)(mysql5.6 支持)

              2、查询计划的重用(减少查询计划的生成开销)

       2)查询重写规则 (mysql5.6 支持)

              1、试图优化、子查询优化、

 

       3) 查询算法优化(mysql5.6支持)

             1、单表扫描算法

             2、量表联合算法

             3、多表联合算法

      4)并行查询优化 (mysql.5.6 不支持)

      5)分布式查询优化 (mysql5.6 不支持)

 

学习心法  ------ 只需要5步

1、读书而明理

2、听讲而释疑

3、练习而掌握

4、实战中巧遇大造化

5、再:读书/听讲/交流/思考/实战。。。。。。。。。。。。。

 

数据库调优

数据库调优勀使数据库运行的更快,其目标是:

使数据库 :

        有更高的吞吐量

        更短的响应时间

被调优的对象是整个数据库关系系统总体。

查询语句调优:

被调优的对象是一条查询语句。(不要只见树木不见森林,不要只看到sql的调优)。

 

如何进行调优:

1) 人工调优

      主要依赖于人、效率低下、要求操作者完全理解常识依赖的原理,还需要对应用、数据库管理系统、操心系统及硬件有广泛的理解。最体现维护人员的价值。

2) 基于案例的调优

根据典型应用配置最优参数案例。

3)、自动调优

商业数据库,该方案还不完善。

 

数据库调优的五个阶段:

1、需求分析

2、项目设计

3、开发

4、测试与运行

5、上线和维护

 

数据库调优五个阶段的主要技术:

1、应用情况的估算

     并发、峰值

2、数据系统选型策略

      开源数据库还是商业的、中间件、硬件、网络等进行选型。

 

3、数据模型的设计

     3.1 E-R模型设计 非规范可以改善系统查询性能

     3.2 数据逻辑分布策略

           目的是减少数据请求的不必要的数据量,把用户需要的数据返回;可用的技术如分区、分表(根据业务的不同进行分库分表

      3.3 数据物理存储策略

           目的是减少IO,如启用压缩技术,把索引和表的数据存储分库,不同的表数据分布于不同的表空间,不同表空间分布在不同的物理存储上。日志、索引、表空间等分布在不同的物理存储上。

       3.4 索引: 适当的建立索引。

 

4、SQL设计

      编写正确的、查询效率高的sql语句。这依赖的主要是“查询重用”编写语句的过程中要注意,要有意识地保证SQL能利用到索引。

 

5、数据库功能的启用

      数据库为提高性能提供了一些功能,可合理使用,具体如下:

      5.1 查询重用: 根据实际情况进行配置,可缓存查询执行计划、查询结果等。

       5.2 数据库参数的设置: 数据缓冲区等、模型系统预运行、进行压力测试及早发现问题。

 

6、 系统监控与分析。

        6.1 应用系统表现: 

               收集用户对应用系统的使用意见、系统存在的问题等,因为这些可能是用户在第一时间发现的。

         6.2 OS环境监控

        6.3 数据库内部状况监控: 如锁的情况,实时监控数据与历史进行对比。

         6.4 日志分析: 在数据库的日志、操作系统的日志中找出异常事件,定位问题

 

 

 

3、

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程大纲: 第1课 数据库与关系代数 综述数据库、关系代数、查询优化技术 综述数据库调优技术 预计时间1小时 第2课 数据库查询优化技术总揽 综述查询优化技术范围,包括查询重用查询重写规则、查询算法优化、并行查询优化等 综述逻辑查询优化,包括子查询优化、视图重写、等价谓词重写、条件化简、连接消除、非SPJ的优化等 综述逻辑物理优化,包括单表扫描算法、两表连接算法、多表连接算法、基于代价的算法等 初步理解MySQL查询执行计划。 预计时间1小时 第3课 查询优化技术理论与MySQL实践(一)------子查询优化(一) 第4课 查询优化技术理论与MySQL实践(二)------子查询优化(二) 从理论看,子查询包括的内容和范围,建立清晰的概念 从实践看,MySQL的子查询优化技术的内容和范围,明确掌握子查询优化手段 预计时间2小时,每小时一个课程段(子查询是SQL查询优化的重点内容,务必掌握好) 第5课 查询优化技术理论与MySQL实践(三)------视图重写与等价谓词重写 什么是视图重写?哪些类型的视图可以被优化MySQL是怎么优化视图的?从而明白在MySQL中怎么写与视图相关的查询语句才能有好的效果? 什么是等价谓词重写?MySQL中怎么写WHERE子句有利于提高查询效率? 预计时间1小时 第6课 查询优化技术理论与MySQL实践(四)------条件化简 什么是条件化简?MySQL中对什么样的条件自动进行优化?如何写出可利用索引的条件语句? 预计时间1小时 第7课 查询优化技术理论与MySQL实践(五)------外连接消除、嵌套连接消除与连接消除 连接方式有些什么类型?不同类型的连接又是怎么优化的?外连接优化的条件是什么?MySQL中怎么写出可优化的连接语句?MySQL是否支持嵌套连接消除?MySQL是否支持连接消除?MySQL中书写SQL连接查询语句时的优化技巧。 预计时间1小时 第8课 查询优化技术理论与MySQL实践(六)------数据库的约束规则与语义优化 数据库的参照完整性(CHECKt NULL等)。什么是语义优化MySQL是否支持语义优化?怎么利用语义优化的思路人工进行SQL语句的优化? 预计时间1小时 第9课 查询优化技术理论与MySQL实践(七)------非SPJ的优化 什么是非SPJ优化? 从理论看,GROUP BY、ORDER BY、LIMIT、DISTINCT等怎么被优化MySQL中:GROUP BY是怎么优化的?ORDER BY是怎么被优化?LIMIT是怎么被优化?DISTINCT是怎么被优化? 非SPJ优化与索引的关系。 预计时间1小时 第10课 MySQL物理查询优化技术概述 从理论看,物理查询优化技术的范围。 从MySQL实践看,怎么利用物理查询优化技术对SQL查询语句调优? 本节预计会承接第9课的部分内容。 预计时间1小时 第11课 MySQL索引的利用、优化MySQL索引的角度出发,看各种SQL查询语句的优化怎么进行?(以前都是从语句的角度看怎么优化,现在站在索引的角度去总结SQL查询语句的优化) 预计时间1小时 第12课 表扫描与连接算法与MySQL多表连接优化实践 MySQL的单表扫描算法。MySQL的两表连接算法。MySQL的多表连接算法。 MySQL的多表连接的优化技巧。 预计时间1小时 第13课 查询优化的综合实例(一)------TPCH实践(一) 第14课 查询优化的综合实例(一)------TPCH实践(二) 以TPC-H国际标准的22条查询语句为实例,综合前面课程的内容,把所学的知识用于实践,进行综合的实战演练。 预计时间2小时(每个课时为1个小时) 第15课 关系代数对于数据库的查询优化的指导意义------查询优化技术总结 再次回到理论,从理论的高度总结关系代数理论与MySQL查询优化实践的关系。真正认识、掌握MySQL查询优化技术,大步流星步入查询优化的高手之列。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值