大牛带你学优化~案例进阶Mysql优化

在进行 MySQL 的优化以前必需要了解的就是 MySQL 的查询过程,不少的查询优化工做实际上就是遵循一些原则让 MySQL 的优化器可以按照预想的合理方式运行而已。sql

MySQL 查询过程数据库

优化的哲学安全

注:优化有风险,修改需谨慎。网络

  • 优化可能带来的问题:
  • 优化不老是对一个单纯的环境进行,还极可能是一个复杂的已投产的系统。
  • 优化手段原本就有很大的风险,只不过你没能力意识到和预见到。
  • 任何的技术能够解决一个问题,但必然存在带来一个问题的风险。
  • 对于优化来讲解决问题而带来的问题,控制在可接受的范围内才是有成果。
  • 保持现状或出现更差的状况都是失败。

优化的需求:架构

  • 稳定性和业务可持续性,一般比性能更重要。
  • 优化不可避免涉及到变动,变动就有风险。
  • 优化使性能变好,维持和变差是等几率事件。
  • 切记优化,应该是各部门协同,共同参与的工做,任何单一部门都不能对数据库进行优化。

因此优化工做,是由业务需求驱使的!分布式

优化由谁参与?在进行数据库优化时,应由数据库管理员、业务部门表明、应用程序架构师、应用程序设计人员、应用程序开发人员、硬件及系统管理员、存储管理员等,业务相关人员共同参与。源码分析

优化思路性能

优化什么学习

在数据库优化上有两个主要方面:大数据

  • 安全:数据可持续性。
  • 性能:数据的高性能访问。

优化的范围有哪些

存储、主机和操做系统方面:

  • 主机架构稳定性
  • I/O 规划及配置
  • Swap 交换分区
  • OS 内核参数和网络问题

应用程序方面:

  • 应用程序稳定性
  • SQL 语句性能
  • 串行访问资源
  • 性能欠佳会话管理
  • 这个应用适不适合用 MySQL

数据库优化方面:

  • 内存
  • 数据库结构(物理&逻辑)
  • 实例配置

说明:无论是设计系统、定位问题仍是优化,均可以按照这个顺序执行。

优化维度

数据库优化维度有以下四个:

  • 硬件
  • 系统配置
  • 数据库表结构
  • SQL 及索引

优化选择:

  • 优化成本:硬件>系统配置>数据库表结构>SQL 及索引。
  • 优化效果:硬件<系统配置<数据库表结构

在这里我为你们准备一节sql的国防大学大牛精彩分享
视频内容以下;
1.从实战中来,分析SQL常见深坑;
2.优化全图谱,从0开始;
3.索引的语法精解;
4.索引的雷区,用了索引效率会更慢?
5.30分钟精通执行计划;

一个SQL引起的思考

最简单的索引

稍微复杂点的索引

索引分类

  • 普通索引:即一个索引只包含单个列,一个表能够有多个单列索引
  • 惟一索引:索引列的值必须惟一,但容许有空值
  • 复合索引:即一个索引包含多个列
  • 聚簇索引(汇集索引):并非一种单独的索引类型,而是一种数据存储方式。具体细节取决于不一样的实现,InnoDB的聚簇索引其实就是在同一个结构中保存了B-Tree索引(技术上来讲是B+Tree)和数据行。
  • 非聚簇索引:不是聚簇索引,就是非聚簇索引
    show global variables like "%datadir%";

基础语法

  • 查看索引
    SHOW INDEX FROM table_nameG
  • 建立索引

CREATE [UNIQUE ] INDEX indexName ON mytable(columnname(length));
ALTER TABLE 表名 ADD [UNIQUE ] INDEX [indexName] ON (columnname(length))

  • 删除索引

DROP INDEX [indexName] ON mytable;

最后送波福利。如今加入Java高阶架构qun;603619042,便可获取Java工程化、高性能及分布式、高性能、高架构、zookeeper、性能调优、Spring、MyBatis、Netty源码分析和大数据等多个知识点高级进阶干货的直播免费学习权限及相关视频资料

相关文章
相关标签/搜索