Mysql索引研究总结
闲来无事,研究了一下mysql索引,场景如下:
有一张MyISAM 类型的zt_action表,数据大约230W行,建两个索引,
CREATE INDEX `read` ON zt_action(`read`)
CREATE INDEX `Type_Id_read` ON zt_action(`objectType,objectID,read`)
CREATE INDEX `actor_action_date` ON zt_action(`actor,action,date`)
EXPLAIN SELECT objectType FROM zt_action WHERE objectType='user' AND objectID=1 AND `read`='0' ('Using where; Using index') 使用索引Type_Id_read,type为ref
EXPLAIN SELECT * FROM zt_action WHERE `read`='3' ('Using index condition') 使用索引read,然后为了select * ,所以进行回表操作
EXPLAIN SELECT * FROM zt_action WHERE `read`='0' AND objectType='user' ('Using index condition') 使用索引Type_Id_read,然后进行回表操作
EXPLAIN SELECT `read` FROM zt_action ('Using index') 未使用索引,但是遍历了索引表read
EXPLAIN SELECT `read` FROM zt_action WHERE `read`='0' ('Using where; Using index') 使用索引read
EXPLAIN SELECT `read` FROM zt_action WHERE `read`='0' AND objectType='user' ('Using index condition; Using where') ('Using where; Using index')Type_id_read 使用索引read, 这个不清楚了
EXPLAIN SELECT `read` FROM zt_action WHERE objectID=1 ('Using where; Using index') 未使用索引,但是遍历索引表Type_Id_read
EXPLAIN SELECT `date` FROM zt_action WHERE objectID=1 ('Using where') 未使用索引,全表扫描
EXPLAIN SELECT `read` FROM zt_action WHERE objectType='user' ('Using where; Using index') 使用了索引Type_Id_read
EXPLAIN SELECT `date` FROM zt_action WHERE `action` LIKE '%ct%'; ('Using where; Using index') 未使用索引,但是遍历了索引表actor_action_date
Mysql索引研究总结的更多相关文章
- MYSQL索引结构原理、性能分析与优化
[转]MYSQL索引结构原理.性能分析与优化 第一部分:基础知识 索引 官方介绍索引是帮助MySQL高效获取数据的数据结构.笔者理解索引相当于一本书的目录,通过目录就知道要的资料在哪里, 不用一页一页 ...
- MySQL索引类型总结和使用技巧以及注意事项
索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable ...
- mysql索引总结----mysql 索引类型以及创建
文章归属:http://feiyan.info/16.html,我想自己去写了,但是发现此君总结的非常详细.直接搬过来了 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基 ...
- MySQL索引简述
文章归属:http://feiyan.info/16.html,我想自己总结,但是发现此君总结的非常详细.直接搬过来了 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼 ...
- mysql索引的使用和优化
参考: http://blog.csdn.net/xluren/article/details/32746183 http://www.cnblogs.com/hustcat/archive/2009 ...
- mysql 索引 详解
索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytabl ...
- Mysql索引总结(二)
在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable表: ) NOT NULL ); 在查找username="admin"的记录 SELECT * ...
- MySQL索引的缺点以及MySQL索引在实际操作中有哪些事项
以下的文章主要介绍的是MySQL索引的缺点以及MySQL索引在实际操作中有哪些事项是值得我们大家注意的,我们大家可能不知道过多的对索引进行使用将会造成滥用.因此MySQL索引也会有它的缺点: 虽然索引 ...
- MySQL索引背后的数据结构及算法原理 --转
写在前面的话 在编程领域有一句人尽皆知的法则“程序 = 数据结构 + 算法”,我个人是不太赞同这句话(因为我觉得程序不仅仅是数据结构加算法),但是在日常的学习和工作中我确认深深感受到数据结构和算法的重 ...
随机推荐
- Android课程设计第一天Android Studio安装
注意:课程设计只为完成任务,不做细节描述~ 学校有一个Android的课设,所以顺便把Android Studio安装了上去. 实际上安装过程并不复杂,只有几个地方需要注意~ 安装包可以去http:/ ...
- [APIO2012]派遣 洛谷P1552 bzoj2809 codevs1763
http://www.codevs.cn/problem/1763/ https://www.lydsy.com/JudgeOnline/problem.php?id=2809 https://www ...
- Broken BST CodeForces - 797D
Broken BST CodeForces - 797D 题意:给定一棵任意的树,对树上所有结点的权值运行给定的算法(二叉查找树的查找算法)(treenode指根结点),问对于多少个权值这个算法会返回 ...
- 利用VS自带的dotfuscator混淆代码的学习
对于一些原创的敏感代码,我们可以通过简单的重命名混淆使得别人难以真正理解执行原理.这一点,使用VS自带的dotfuscator即可实现. 如上图所示,你可以自定义选择哪些类被排除重命名,内置的规则中, ...
- java自带线程池
1. newSingleThreadExecutor 创建一个单线程的线程池.这个线程池只有一个线程在工作,也就是相当于单线程串行执行所有任务.如果这个唯一的线程因为异常结束,那么会有一个新的线程来替 ...
- 宏 函数 内联函数inline
带参宏有时候可以代替函数作用:优点直接替代,省去函数调用过程的开销:但缺点也是很明显:容易出错,系统不做检查非常容易出错. 改进方案:内联函数:既有带参宏的直接替代(拷贝)的优点,又有系统检查的优点. ...
- 域名IP主动验证(一)
功能:主动验证给定的域名.IP对是否真正的关联 思路: 1.一开始通过修改hosts文件,把待验证的域名.IP对添加到文件里,然后用wget尝试访问,再恢复hosts文件重新验证下一对 2.后来了解到 ...
- P1482 Cantor表(升级版)
题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … ...
- 虚方法(virtual)
虚方法(virtual) Virtual 关键字用于修饰方法.属性.索引器或事件声明,并且允许在派生类中重写这些对象. 看一段代码: using System ; class A { public v ...
- 一些关于Spring的随笔
Spring的IOC.AOP IOC(Inversion of Control): spring容器控制了所有的bean,不用spring以前,一个bean要依赖另一个bean就在这个bean里初始化 ...