索引优化非常的重要

1、预热

java开发

DBA培训很少,需要经验磨练

索引优化的效果非常好

左外连接

MySQL没有全连接

7种join一定要会写

具体见武林的例子

union的字段顺序要相同

6、

union all不会去重但效率更高

字段顺序一致!!!

7、

写法1

子查询很重要

写法2

写法3

写法4

作业再议P341

2、索引简介

索引结构

二叉树缺点:最坏情况是链表

balance tree :b树

平衡二叉树

B树和B+树

红色的是指向数据的指针

B+树

MySQL用的是B+树

B+tree的IO次数比Btree的IO少1/3

索引

group by更耗性能

Explain

先执行大的在执行小的

先从大到小再从上到下

在外层是主要查询,内层是衍生查询

key_len越长越好

主从复制简介

主机写到日志中,从机读取进行模仿

避免主从复制不同

操作不说了,是sql编程

创建函数

面试别提存储过程,节外生枝

优化效果明显 0.1—>0

int 型最多5

varchar几十

key_len

1、单表索引:全值匹配我最爱,where筛选字段有多少索引用多少

索引的顺序不影响:优化器会自动调整顺序

索引层层匹配

索引分层,一层然后又一层

先命中一层然后到与之相关的下一层

一一命中,第一层的每个叶子点都是一棵树

2、

按照顺序命中

俩个速度都是全表扫描很慢

创建索引

上面的用上了索引,下面没有

3、

4、

右边的字段失效

范围查询字段,建立索引的时候放在前面后面的字段失效

5、

留个文件表示介绍效率低,职场上要学会说话

6、

7、

按照首字母建立的树,如果首字母不确定无法建立索引树,最好首字母确定

8、

类型转换会使类型失效

类型一定要匹配

一般性建议

过滤性好的字段,就是定位范围小的

关联查询优化

俩个表的关联查询。第一个表叫驱动表,另一个表叫被驱动表,驱动表建立索引没有意义

4个语句的执行效率

第二

这个才是最快的、第一

5.7自动进行了优化

第4点是因为虚拟表没有办法建立索引,因此子查询最好不要放在被驱动表上

最好不要用子查询

3和4的区别,3是把子查询的虚拟表作为驱动表, 被驱动表给了实体表因此有索引优化

练习题

需求拆开来写

选取非掌门人的成员

索引失效需要优化,子查询优化

排序分组优化

order by就看extra

没有过滤条件索引不可使用

order by和where的内容都要有索引,索引顺序不能变

索引优化排序

单路排序更加的快因为是在内存进行排序

覆盖索引尽量少的使用select*,多用具体的字段名

8个sql的作业

straight_join来进行优化

MySQL数据库高级二:索引优化的更多相关文章

  1. mysql 高级和 索引优化,目的:查的好,查的快,性能好

    1-事物隔离级别: 更新丢失, 并发情况下,对同一字段进行更新,就会出现更新丢失,采用乐观锁,比较版本号或时间戳可解决 读未提交 解决了更新丢失但是会引起脏读, 二个session.sessionA中 ...

  2. mysql数据库架构设计与优化

    mysql数据库架构设计与优化 2019-04-23 20:51:20 无畏D尘埃 阅读数 179  收藏 更多 分类专栏: MySQL   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA ...

  3. MySQL数据库基础知识及优化

    MySQL数据库基础知识及优化必会的知识点,你掌握了多少? 推荐阅读: 这些必会的计算机网络知识点你都掌握了吗 关于数据库事务和锁的必会知识点,你掌握了多少? 关于数据库索引,必须掌握的知识点 目录 ...

  4. MySQL 数据库高级操作 (配图)

    MySQL数据库高级操作 1.一键部署mysql 数据库 2.数据表高级操作 3.数据库用户管理 4.数据库用户授权 1.首先一键部署mysql 数据库 : 可以看我之前的博客 https://www ...

  5. MySQL数据库授权与索引

    MySQL数据库授权与索引 目录 MySQL数据库授权与索引 一.数据库用户授权 1. 授予权限 2. 查看权限 3. 删除权限 4. 全部权限(all privileges) 二.MySQL索引 1 ...

  6. mysql 数据库(二)数据库的基本操作

    mysql 数据库(二)数据库的基本操作 用户管理,添加权限,创建,显示,使用数据库 1 显示数据库:show databases; 默认数据库: mysql - 用户权限相关数据 test - 用于 ...

  7. Mysql数据库写入数据速度优化

    Mysql数据库写入数据速度优化 1)innodb_flush_log_at_trx_commit 默认值为1:设置为0,可以提高写入速度.  值为0:提升写入速度,但是安全方面较差,mysql服务器 ...

  8. 【MySQL 高级】索引优化分析

    MySQL高级 索引优化分析 SQL 的效率问题 出现性能下降,SQL 执行慢,执行时间长,等待时间长等情况,可能的原因有: 查询语句写的不好 索引失效 单值索引:在 user 表中给 name 属性 ...

  9. MySQL数据库篇之索引原理与慢查询优化之二

    接上篇 7️⃣  正确使用索引 一.索引未命中 并不是说我们创建了索引就一定会加快查询速度,若想利用索引达到预想的提高查询速度的效果, 我们在添加索引时,必须遵循以下问题: #1 范围问题,或者说条件 ...

随机推荐

  1. 算法型稳定币USDN是如何保持稳定的?

    数据显示,2019年稳定币市场总市值25亿美元,在整个加密货币市场占比 1.3%.可别小瞧了看似微小的1.3%这个数据,它其实是一个庞大的市场.稳定币不仅仅是货币的电子化,它还是一种可编程的加密货币, ...

  2. Java操作Excel工具类(poi)

    分享一个自己做的poi工具类,写不是很完全,足够我自己当前使用,有兴趣的可以自行扩展 1 import org.apache.commons.lang3.exception.ExceptionUtil ...

  3. WPF -- 一种实现本地化的方法

    本文介绍一种WPF程序实现本地化的方法. 步骤 首先,假设xaml文件中存在一个Button按钮,内容为"按钮",实现本地化的步骤如下: 展开程序的Properties,双击Res ...

  4. docker里运行docker命令

    一.概述 现有环境的jenkins是在docker里面运行的,需要执行docker相关命令才行. 关于基于docker搭建jenkins,请参考链接: https://www.cnblogs.com/ ...

  5. wxWidgets源码分析(4) - 消息处理过程

    目录 消息处理过程 消息如何到达wxWidgets Win32消息与wxWidgets消息的转换 菜单消息处理 消息处理链(基于wxEvtHandler) 消息处理链(基于wxWindow) 总结 消 ...

  6. 后端程序员之路 27、LogStash

    访谈与书评:<LogStash,使日志管理更简单>http://www.infoq.com/cn/articles/review-the-logstash-book/ [Logstash] ...

  7. 如何读写拥有命名空间xmlns 属性的Xml文件(C#实现)

    我们在进行C#项目Xml读写开发时经常遇到一些读写问题,今天我要介绍的是遇到多个命名空间xmlns属性时如何读写此类文件. 比如下面这个Xml文件: <?xml version="1. ...

  8. 上百本电子书(Java/Hadoop/Spark/Linux/机器学习/)免费分享 百度云持续更新

    分享一下自己整理的超多电子书, 其中包括:Java,Hadoop,Spark,Linux,Hbase,Hive,机器学习,区块链 目录如下: 1 Java 基础 2 Java 虚拟机 3 Java 并 ...

  9. C++数组的存储与初始化

    下面随笔给出C++数组的存储与初始化的细节内容. 数组的存储与初始化 一维数组的存储 数组元素在内存中顺次存放,它们的地址是连续的.元素间物理地址上的相邻,对应着逻辑次序上的相邻. 例如:

  10. 面试题-python 如何读取一个大于 10G 的txt文件?

    前言 用python 读取一个大于10G 的文件,自己电脑只有8G内存,一运行就报内存溢出:MemoryError python 如何用open函数读取大文件呢? 读取大文件 首先可以自己先制作一个大 ...