mysql索引及sql执行顺序
1, 红黑树 同一层级的黑树到根结点经历的黑树数目一样 最坏情况的时间复杂度 lg n 是二叉树
b树 结点可以有多个孩子 b+树 父节点不存储数据
聚集索引)的叶子节点会存储数据行,也就是说数据和索引是在一起 非聚集索引存储的是数据行的指针
2,InnoDB存储引擎支持两种常见的索引。
一种是B+树,一种是哈希。
所有记录的节点都在叶节点中,并且是顺序存放的
所有记录节点都是按照键值的大小顺序存放在同一层的叶节点中,各个叶子节点通过指针进行连接。由于一个节点中存放了多条的数据,那么检索的时候,进行的磁盘IO次数将会少掉很多
3,like 'abc%'会去索引中找 '%abc'不会
复合索引 使用第一部分才会使用索引
索引单独使用,否则不使用索引 or and
索引缺点 占空间 增加删除耗时
频繁更新的不适合索引 sex值类型少不适合,
4,InnoDB存储引擎的逻辑存储结构和 Oracle大致相同 ,所有数据都被逻辑地存放在一个空间中 ,我们称之为表空间 ( tablespace ) 。表空间又由段 ( segment ) 、区 ( extent ) 、页 ( page ) 组成 。页在一些文档中有时也称为块(block)
执行顺序
示例SQL:
SELECT * FROM user LEFT JOIN order ON user.id = order.uid WHERE order.price > 1000 GROUP BY user.name HAVING count(1) > 5 ORDER BY user.name LIMIT 0,10
1.FROM(将最近的两张表,进行笛卡尔积)---VT1
2.ON(将VT1按照它的条件进行过滤)---VT2
3.LEFT JOIN(保留左表的记录)---VT3
4.WHERE(过滤VT3中的记录)--VT4…VTn
5.GROUP BY(对VT4的记录进行分组)---VT5
6.HAVING(对VT5中的记录进行过滤)---VT6
7.SELECT(对VT6中的记录,选取指定的列)--VT7
8.ORDER BY(对VT7的记录进行排序)--游标
9.LIMIT(对排序之后的值进行分页)
WHERE条件执行顺序(影响性能)
1.MYSQL:从左往右去执行WHERE条件的。
2.Oracle:从右往左去执行WHERE条件的。
结论:写WHERE条件的时候,优先级高的部分要去编写过滤力度最大的条件语句。
转载于:https://www.cnblogs.com/song-9527/p/10647998.html
mysql索引及sql执行顺序相关推荐
- mysql索引执行顺序_mysql索引及sql执行顺序
1, 红黑树 同一层级的黑树到根结点经历的黑树数目一样 最坏情况的时间复杂度 lg n 是二叉树 b树 结点可以有多个孩子 b+树 父节点不存储数据 聚集索引)的叶子节点会存储数据行,也就是说数据和索 ...
- MySQL数据库:SQL执行顺序
MySQL数据库是我们常用的关系型数据库之一,对于MySQL,我们写的SQL语句大多包含以下部分: select 字段 from 表 join 连接类型 on 连接字段 where 条件 group ...
- MySQL高级 - SQL技巧 - SQL执行顺序及正则表达式
SQL执行顺序 编写顺序 SELECT DISTINCT<select list> FROM<left_table> <join_type> JOIN<rig ...
- MySQL索引管理及执行计划
MySQL索引管理及执行计划 第1章 索引介绍: 索引是对数据库表中一列或者多列 的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息,如果想按特定职员的姓名来查找,则与他在表中搜索所有的 ...
- Mysql体系结构及sql执行过程总结
Mysql体系结构及sql执行过程总结 一.体系结构图 各模块说明: 1.Connectors:各应用程序与SQL的交互 2. Management Serveices & Utilities ...
- sql笔记1:sql执行优先级和casewhen用法、sql执行顺序
MySQL 语句中执行优先级--and比or高 例: select * from table where 条件1 AND 条件2 OR 条件3 等价于 select * from table wher ...
- SQL 执行顺序图解
目录 执行顺序 数据的关联过程 执行顺序 这是一条标准的查询语句: 这是我们实际上SQL执行顺序: 我们先执行from,join来确定表之间的连接关系,得到初步的数据 where对数据进行普通的初步的 ...
- Hive 优化--SQL执行顺序、Hive参数、数据倾斜 、小文件优化
优化整体思路 如果资源充足就加资源加内存, 调度链路优化,调整调度顺序,时效性要求高的模型先产出, 数据接入模块,调优数据接入工具sqoop,datax 模型设计质量不高,调整模型,提高质量和复用度, ...
- Spark SQL执行流程解析之 sql执行顺序
一.Spark SQL模板解析 Spark Sql 关键字执行顺序跟Sql执行顺序类似: 1.先将from前两表做笛卡尔积加载进来形成虚拟表vt1, 2.on条件后为真的插入虚拟表形成vt2, 如果包 ...
最新文章
- 六月第一枪:股市震荡,下一步该做什么?
- Linux系统中,read文件过程分析
- mysql自动增长id 溢出_MySQL表自增id溢出的故障复盘怎么解决 MySQL表自增id溢出的故障复盘解决方法...
- spring——使用注解声明式事务整合jdbc——GRUD
- Project2010简易操作指南[转]
- 基于DEAP库的python进化算法-6.遗传算法中的约束处理
- 深企在VR硬件领域获多项突破
- cefsharp winform 页面里的单击事件不触发_事件详解C 键盘事件及事件流
- Structs2-基础
- linux 蓝牙打印机驱动安装失败,Win7蓝牙驱动安装失败的原因分析与解决方法
- 2021年爬虫人员必须掌握的 App 抓包工具(一):Charles
- 1.1.26 word内容导入PPT
- 五大靠谱的婚恋相亲APP详细特点缺点分析!
- linux mtr 安装,遇到网络问题?别慌!MTR来帮您
- FANUC数控机床的维修 从原理开始(二)
- 关于H1N1的预防,目前为止最好的忠告
- HTML+CSS系列学习:重生之我要精通编程语言修仙
- 基于SPSS的K均值算法
- 找到不偏科的学生(提取学生的所有课程都大于各个课程平均分的学生)
- UG NX二次开发(C#)-外部模式-导出dwg格式的文件
热门文章
- java中io与nio复制文件性能对比
- 关于json_decode乱码及NULL的解决方法
- ubuntu下安装openfetion
- Android12 Jetpack SplashScreen API总结
- Android 可视化界面编辑器无法显示界面问题的终极解决方案
- android 解决Error:This Gradle plugin requires Studio 3.0 minimum
- android音频系统之AudioTrack的使用
- 定义一个 圆形 Circle类 , 定义其中的长度length属性,定义一个求面积getArea()的方法。 并编写一个测试类,进行长度的赋值和展示,并调用求面积方法展示面积值。
- 非proguard无法发现jar(已编译)的外部引用错误,(javac + proguard 则会检查)
- Eclipse+Maven配置