MySQL 5.6 SQL 优化及 5.6手册
http://blog.chinaunix.net/uid-259788-id-4146363.html
http://www.cnblogs.com/Amaranthus/p/4028687.html MYSQL 5.6手册
http://www.cnblogs.com/hustcat/category/214566.html YY哥
http://blog.163.com/li_hx/blog/static/18399141320150253652874/ 那海蓝蓝
http://tech.it168.com/a2013/0506/1479/000001479749.shtml
http://www.server110.com/mariadb/201310/2245.html
http://www.cnblogs.com/zhoujinyi/p/4746483.html
http://www.codesec.net/view/159821.html
1. mrr
mrr_cost_based
这个是从MySQL 5.6 开始增加的开关。 意思是针对普通索引把资源利用最大化,主要是针对多列索引,也叫组合索引来做基本扫描,然后对匹配的记录按照主键排序,这样按照有序的主键顺序从磁盘上扫描需要的全部记录。 根本功能是把对磁盘的随机扫描转化为顺序扫描。
主要针对的是数据太大,放不到CACHE里面(比如INNODB,或者MYISAM)。 目前对全索引扫描意义不大。
2. batched_key_access
(在JOIN BUFFER POOL里)当内表被扫描后,针对扫描到的记录,找到对应的主键值并且一次**给MRR接口。省掉了频繁跟磁盘交互的IO部分。
3. block_nested_loop
(在JOIN BUFFER POOL里)当内表被扫描后,针对原来的记录加上一个是否匹配标记,生成新的记录。这样下次外表的值如果再来遍历内表,就只扫描不匹配的即可。省掉部分CPU资源。
4. index_condition_pushdown
不开启: 对于组合索引(A,B)来说,如果A可以用到索引,B不能用到,那么只能在索引树上找到A,然后再用A对应的指针到磁盘上遍历数据。
开启后: 同样对于组合索引(A,B)来说,如果A可以用到索引,B不能用到,那么在索引树上找到A,然后再通过B的过滤条件在索引树上进行过滤,删选后的指针到磁盘上遍历数据。
但是ICP并不能把随机扫描变为顺序扫描,只是减少了对磁盘交互的IO部分。
http://blog.csdn.net/wang1518037965/article/details/46550807
5. use_index_extensions
主要用于INNODB的第二索引,也就是普通的索引,把索引中包含的主键值利用到。比如主键为(a,b),索引为(c). 如果用到了索引c,那么把索引变成(c,a,b) 这样,就可以用到新的组合索引了。
不过这种场合用的也比较少,一般是根据组合主键中的第一个字段和普通索引一起来做检索的时候。
6. semijoin
表示在连接的时候内表去重的过程 。
比如对以下的查询,a.class_id 就只需要扫描一次和b.id相同的记录就可以不在继续了。因为不需要关心b表里面是否有多少相同的class_id,只需要知道有还是没有就行了。
所以一般用在对子查询的优化居多。
http://www.cnblogs.com/xiaotengyi/p/3908347.html
http://www.linuxidc.com/Linux/2015-05/117523.htm
7. firstmatch
只选用内表的第一条与外表匹配的记录。
8. loosescan
把内表的数据基于索引分组,取每组第一条数据即可。
9. materialization
subquery_materialization_cost_based
把内表去重然后生成有对应索引的临时表(有点类似其他数据中的物化视图),然后通过外表的对应键值遍历这张临时表。
主要针对不能抓华为半连接的检索类型。
MySQL 5.6 SQL 优化及 5.6手册的更多相关文章
- (6)MySQL进阶篇SQL优化(MyISAM表锁)
1.MySQL锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算资源 (如 CPU.RAM.I/O 等)的抢占以外,数据也是一种供许多用户共享的资源.如何保证数 据并 ...
- [转]Mysql中的SQL优化与执行计划
From : http://religiose.iteye.com/blog/1685537 一,如何判断SQL的执行效率? 通过explain 关键字分析效率低的SQL执行计划. 比如: expla ...
- MySQL系列(七)--SQL优化的步骤
前面讲了如何设计数据库表结构.存储引擎.索引优化等内存,这篇文章会讲述如何进行SQL优化,也是面试中关于数据库肯定会被问到的, 这些内容不仅仅是为了面试,更重要的是付诸实践,最终用到工作当中 之前的M ...
- (4)MySQL进阶篇SQL优化(常用SQL的优化)
1.概述 前面我们介绍了MySQL中怎么样通过索引来优化查询.日常开发中,除了使用查询外,我们还会使用一些其他的常用SQL,比如 INSERT.GROUP BY等.对于这些SQL语句,我们该怎么样进行 ...
- MySQL专题3 SQL 优化
这两天去京东面试,面试官问了我一个问题,如何优化SQL 我上网查了一下资料,找到了不少方法,做一下记录 (一). 首先使用慢查询分析 通过Mysql 的Slow Query log 可以找到哪些SQ ...
- MySQL 学习四 SQL优化
MySQL逻辑架构: 第一层:客户端层,连接处理,授权认证,安全等功能. 第二层:核心层,查询解析,分析,优化,缓存,内置函数(时间,数学,加密),存储过程,触发器,视图 第三层:存储引擎.负 ...
- 基于mysql数据库 关于sql优化的一些问题
mysql数据库有一个explain关键词,可以对select语句进行分析并且输出详细的select执行过程的详细信息. 对sql explain后输出几个字段: id:SELECT查询的标识符,每个 ...
- (2)MySQL进阶篇SQL优化(show status、explain分析)
1.概述 在应用系统开发过程中,由于初期数据量小,开发人员写SQL语句时更重视功能上的实现,但是当应用系统正式上线后,随着生产数据量的急剧增长,很多SQL语句开始逐渐显露出性能问题,对生产环境的影响也 ...
- (3)MySQL进阶篇SQL优化(索引)
1.索引问题 索引是数据库优化中最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数 的SQL性能问题.本章节将对MySQL中的索引的分类.存储.使用方法做详细的介绍. 2.索引的存储分类 ...
随机推荐
- 第 10 章 建造者模式【Builder Pattern】
以下内容出自:<<24种设计模式介绍与6大设计原则>> 又是一个周三,快要下班了,老大突然又拉住我,喜滋滋的告诉我“牛叉公司很满意我们做的模型,又签订了一个合同,把奔驰.宝马的 ...
- 得到bundle seed id
- (NSString *)bundleSeedID { NSDictionary *query = [NSDictionary dictionaryWithObjectsAndKeys: (__br ...
- uva 1453 - Squares
旋转卡壳算法: 直接在这个上面粘的模板 主要用途:用于求凸包的直径.宽度,两个不相交凸包间的最大距离和最小距离··· 这题就是求凸包的直径 #include <cstdio> #inclu ...
- csu 10月 月赛 I 题 The Contest
Description 殷犇有很多队员.他们都认为自己是最强的,于是,一场比赛开始了~ 于是安叔主办了一场比赛,比赛有n个题目,每个题目都有一个价值Pi和相对能力消耗Wi,但是有些题目因为太坑不能同时 ...
- spring 属性配置细节
1.使用构造器注入属性值可以指定参数的位置和参数的类型!以区分重载的构造器.例如:<constructor-arg value="" type="java.lang ...
- Hicharts弄个样例
前端的事情,但最好自己要了解一下,能作个最简单的东东出来... 样例,需要的时候,用用,就喟给它一样模板数据即可. PYTHON,把字典的键值和KEY值匹配成列表即可. $(function () { ...
- ANDROID_MARS学习笔记_S03_002_设置可见性及扫描蓝牙设备
一.代码 1.xml(1)AndroidManifest.xml <uses-permission android:name="android.permission.BLUETOOTH ...
- 【Xamarin开发 Android 系列 3】循序渐进的学习顺序
原文:[Xamarin开发 Android 系列 3]循序渐进的学习顺序 指定合理的学习步骤,将各个技术点进行强化.慢慢 的就从点到线 到面的飞跃,一切仅仅是时间问题,开始前,请记住,学习是最佳的投资 ...
- leetcode面试准备:Valid Anagram
leetcode面试准备:Valid Anagram 1 题目 Given two strings s and t, write a function to determine if t is an ...
- BZOJ3323: [Scoi2013]多项式的运算
3323: [Scoi2013]多项式的运算 Time Limit: 12 Sec Memory Limit: 64 MBSubmit: 128 Solved: 33[Submit][Status ...