MySQL数据库高级二:索引优化
索引优化非常的重要
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数据库高级二:索引优化的更多相关文章
- mysql 高级和 索引优化,目的:查的好,查的快,性能好
1-事物隔离级别: 更新丢失, 并发情况下,对同一字段进行更新,就会出现更新丢失,采用乐观锁,比较版本号或时间戳可解决 读未提交 解决了更新丢失但是会引起脏读, 二个session.sessionA中 ...
- mysql数据库架构设计与优化
mysql数据库架构设计与优化 2019-04-23 20:51:20 无畏D尘埃 阅读数 179 收藏 更多 分类专栏: MySQL 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA ...
- MySQL数据库基础知识及优化
MySQL数据库基础知识及优化必会的知识点,你掌握了多少? 推荐阅读: 这些必会的计算机网络知识点你都掌握了吗 关于数据库事务和锁的必会知识点,你掌握了多少? 关于数据库索引,必须掌握的知识点 目录 ...
- MySQL 数据库高级操作 (配图)
MySQL数据库高级操作 1.一键部署mysql 数据库 2.数据表高级操作 3.数据库用户管理 4.数据库用户授权 1.首先一键部署mysql 数据库 : 可以看我之前的博客 https://www ...
- MySQL数据库授权与索引
MySQL数据库授权与索引 目录 MySQL数据库授权与索引 一.数据库用户授权 1. 授予权限 2. 查看权限 3. 删除权限 4. 全部权限(all privileges) 二.MySQL索引 1 ...
- mysql 数据库(二)数据库的基本操作
mysql 数据库(二)数据库的基本操作 用户管理,添加权限,创建,显示,使用数据库 1 显示数据库:show databases; 默认数据库: mysql - 用户权限相关数据 test - 用于 ...
- Mysql数据库写入数据速度优化
Mysql数据库写入数据速度优化 1)innodb_flush_log_at_trx_commit 默认值为1:设置为0,可以提高写入速度. 值为0:提升写入速度,但是安全方面较差,mysql服务器 ...
- 【MySQL 高级】索引优化分析
MySQL高级 索引优化分析 SQL 的效率问题 出现性能下降,SQL 执行慢,执行时间长,等待时间长等情况,可能的原因有: 查询语句写的不好 索引失效 单值索引:在 user 表中给 name 属性 ...
- MySQL数据库篇之索引原理与慢查询优化之二
接上篇 7️⃣ 正确使用索引 一.索引未命中 并不是说我们创建了索引就一定会加快查询速度,若想利用索引达到预想的提高查询速度的效果, 我们在添加索引时,必须遵循以下问题: #1 范围问题,或者说条件 ...
随机推荐
- 「NGK每日快讯」12.17日NGK第44期官方快讯!
- 内核栈与thread_info结构详解
本文转载自内核栈与thread_info结构详解 什么是进程的内核栈? 在内核态(比如应用进程执行系统调用)时,进程运行需要自己的堆栈信息(不是原用户空间中的栈),而是使用内核空间中的栈,这个栈就是进 ...
- io流+网络+线程池 实现简单的多客户端与服务器端通信
1 import java.io.IOException; 2 import java.io.InputStream; 3 import java.io.OutputStream; 4 import ...
- (报错解决)Exception encountered during context initialization
转: (报错解决)Exception encountered during context initialization 关键词 JavaEE JavaWeb eclipse XML AspectJ ...
- 微信小程序onReachBottom第二次失效
当整个页面就是一个view包着一个轮播.一个横向scroll-view和一个纵向scroll-view onReachBottom方法只执行一次 解决方法:
- Linux速通06 系统的初始化服务和监控
Linux系统引导的顺序 # 掌握 Linux系统引导的顺序 * BIOS的工作是检查计算机的硬件设备,如CPU.内存和风扇速度等 * MBR会在启动盘的第一个块中,大小为512B,其中前446B是引 ...
- 聊一聊和Nacos 2.0.0对接那些事
前言 nacos 2.0.0 已经发布了 alpha1, alpha2 和 beta 三个版本了,部分测试报告也已经出来了. Nacos2.0.0-ALPHA2 服务发现性能测试报告 Nacos 2. ...
- for遍历是如何判断数据是不是list的最后一位
//listUser 是User的实体的集合for(User user : listUser){ if(listUser.size - 1 == listUser.indexOf(user)){ // ...
- Python命令开启http.server服务器
如果想把命令E:\zpic作为提供下载的目录,那么在cmd里cd到该目录下,并执行命令:python -m SimpleHTTPServer 默认的端口号是8000, 服务器根目录就是运行python ...
- react+lib-flexible适配浏览器宽度配置
p.p1 { margin: 0; font: 12px "Helvetica Neue" } p.p2 { margin: 0; font: 12px "Helveti ...