Mysql高级操作 索引概述: 索引是高效获取数据的数据结构 索引结构: B+Tree() Hash(不支持范围查询,精准匹配效率极高) 树的区别: 二叉树:可能产生不平衡,顺序数据可能会出现链表结构 平衡二叉树:插入需要自旋,性能根据层级而定,性能不稳定 b+tree: 主键聚簇叶子节点存放数据,非叶子节点存放索引, 二级索引非叶子节点存放索引,叶子节点存放主键 索引优缺点: 优点: 大大加快查询速度 使用分组和排序时候可以显著减少分组和排序时间 唯一索引可以保证字段唯一 可以加速表与表之间的…
原始SQL: select a2.ISSUE_CODE as ISSUE_CODE, a2.FZQDM as FZQDM, a2.FZQLB as FZQLB, a2.FJJDM as FJJDM, a3.FSETCODE as FSETCODE, a3.FSETID as FSETID, a2.SRSCD as SRSCD from (select t1.FSCDM as ISSUE_CODE,--市场代码 t1.FZQDM as FZQDM, (case when instr(t1.FZQL…
一:sqlserver 执行计划介绍    sqlserver 执行计是在sqlser manager studio 工具中打开,是检查一条sql执行效率的工具.建议配合SET STATISTICS IO ON等语句来一起使用,执行计划是从右向左看,耗时高的一般显示在右边,我们知道,sqlserver 查询数据库的方式为: 1:表扫描(table scan) 查询速度最慢. 2:聚集索引扫描(Clustered Index Scan),按聚集索引逐行进行查询,效率比表扫描高,但速度还是慢. 3:…
一直想找一些关于SQL语句性能调试的权威参考,但是有参考未必就能够做好调试的工作.我深信实践中得到的经验是最珍贵的,书本知识只是一个引导.本篇来源于<Inside Microsoft SQL Server 2008>,有经验的高手尽管拍砖把. 这个部分将讲解一些性能分析工具,这些性能分许主要关注在执行计划. 缓存执行计划  SQL Server 2008提供了一些服务器对象来分析执行计划Sys.dm_exec_cached_plans:    包含缓存的执行计划,每个执行计划对应一行.Sys.…
一.索引,分页性能,执行计划,慢日志 (1)索引的种类,创建语句,名词补充(最左前缀匹配,覆盖索引,索引合并,局部索引等): import sys # http://www.cnblogs.com/wupeiqi/articles/5716963.html 武老师索引补充 ''' 索引种类: 单列: 1.普通索引 : 加速查找 2.主键索引 : 加速查找 + 不能为空+ 唯一 3.唯一素银 : 加速查找 + 唯一 多列: 4.联合(组合)索引 : 1.联合唯一 2.联合不唯一 联合主键索引 联合…
MySQL常见瓶颈: CPU:CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据的时候. IO:磁盘I/O瓶颈发生在装入数据远大于内存容量的时候. 服务器硬件的性能瓶颈:top.free.iostat和vmstat来查看系统的性能状态. EXPLAIN: 定义: explain 叫做查看执行计划,使用 explain关键字可以模拟优化器执行sql查询语句,从而知道MySQL是如何处理执行的SQL语句的.分析SQL或是表结构的性能瓶颈. 功用: 查看表的读取顺序. 查看数据读取操作的操作类…
优化器生成正确执行计划的前提条件是要有正确的统计信息,不准确的统计信息往往会导致错误的执行计划.当通过SQL和基数推断出的执行计划和实际执行计划不同时,就可以借助10053事件.10053事件是用来诊断优化器如何估算成本和选择执行计划的,用它产生的trace文件提供了Oracle如何选择执行计划,为什么会得到这样的执行计划信息.和10046事件类似,它主要用于特殊情况下的分析和诊断. 1.测试环境:SQL> select * from v$version;BANNER--------------…
性能分析 1. explain 查看sql执行计划,得出索引使用情况等信息 2. show profiling 查看sql所有执行步骤以及用时,使用步骤如下 1)开启性能剖析 mysql> set profiling = 1; 2)执行你要查询的sql 3)查看性能剖析接收到的sql以及耗时 mysql> show profiles; 4)查看sql执行的详细步骤耗时(这里query后的id是步骤3中的QUERY_ID) mysql> show prifile for query 1;…
explain关键字结果 列名所代表的的含义: Id:MySQL QueryOptimizer 选定的执行计划中查询的序列号.表示查询中执行 select 子句或操作表的顺序,id 值越大优先级越高,越先被执行.id 相同,执行顺序由上至下. Select_type一共有9中类型,只介绍常用的4种: SIMPLE: 简单的 select 查询,不使用 union 及子查询 PRIMARY: 最外层的 select 查询 UNION: UNION 中的第二个或随后的 select 查询,不 依赖于…
执行语句 hive> explain select s.id, s.name from student s left outer join student_tmp st on s.name = st.name; 结果,红色字体为我添加的注释 hive> explain select s.id, s.name from student s left outer join student_tmp st on s.name = st.name; OK ABSTRACT SYNTAX TREE: (T…