闲来无事,研究了一下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索引研究总结的更多相关文章

  1. MYSQL索引结构原理、性能分析与优化

    [转]MYSQL索引结构原理.性能分析与优化 第一部分:基础知识 索引 官方介绍索引是帮助MySQL高效获取数据的数据结构.笔者理解索引相当于一本书的目录,通过目录就知道要的资料在哪里, 不用一页一页 ...

  2. MySQL索引类型总结和使用技巧以及注意事项

    索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable ...

  3. mysql索引总结----mysql 索引类型以及创建

    文章归属:http://feiyan.info/16.html,我想自己去写了,但是发现此君总结的非常详细.直接搬过来了 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基 ...

  4. MySQL索引简述

    文章归属:http://feiyan.info/16.html,我想自己总结,但是发现此君总结的非常详细.直接搬过来了 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼 ...

  5. mysql索引的使用和优化

    参考: http://blog.csdn.net/xluren/article/details/32746183 http://www.cnblogs.com/hustcat/archive/2009 ...

  6. mysql 索引 详解

    索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytabl ...

  7. Mysql索引总结(二)

    在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable表: ) NOT NULL ); 在查找username="admin"的记录 SELECT * ...

  8. MySQL索引的缺点以及MySQL索引在实际操作中有哪些事项

    以下的文章主要介绍的是MySQL索引的缺点以及MySQL索引在实际操作中有哪些事项是值得我们大家注意的,我们大家可能不知道过多的对索引进行使用将会造成滥用.因此MySQL索引也会有它的缺点: 虽然索引 ...

  9. MySQL索引背后的数据结构及算法原理 --转

    写在前面的话 在编程领域有一句人尽皆知的法则“程序 = 数据结构 + 算法”,我个人是不太赞同这句话(因为我觉得程序不仅仅是数据结构加算法),但是在日常的学习和工作中我确认深深感受到数据结构和算法的重 ...

随机推荐

  1. 洛谷1736(二维dp+预处理)

    洛谷1387的进阶版,但很像. 1387要求是“全为1的正方形”,取dp[i][j] = min(dp[i-1][j-1], min(dp[i-1][j], dp[i][j-1]))吧?这个有“只有对 ...

  2. 模拟 2015百度之星资格赛 1003 IP聚合

    题目传送门 /* 模拟水题,排序后找出重复的ip就可以了 */ #include <cstdio> #include <iostream> #include <algor ...

  3. 将php数组传递到js—json_encode(),json_decode()

    json_decode(),对一个json字符串进行解码,json_encode()是生成一个json字符串 上面的解释很清楚了,关于php里数组赋值的问题,列举如下: <?php //对象 c ...

  4. [转]利用telnet进行SMTP的验证

    本文转自:http://www.cnblogs.com/rootq/articles/1320266.html [crazywill@localhost crazywill]$ telnet #tel ...

  5. [转]EntityFramework之领域驱动设计实践

    本文转自:http://www.cnblogs.com/daxnet/archive/2010/11/02/1867392.html Entity Framework之领域驱动设计实践 EntityF ...

  6. ref 和 React.js 中的 DOM 操作

    在 React.js 当中你基本不需要和 DOM 直接打交道.React.js 提供了一系列的 on*方法帮助我们进行事件监听,所以 React.js 当中不需要直接调用 addEventListen ...

  7. ImageView控件

    ImageView   显示图片 常用属性: src    要显示的图片 foreground 前景图 backgrund 背景图 alpha 透明度 clickable 是否可以点击 onClick ...

  8. IDEA一些设置

    1. 设置字体为Consolas,Size:16, Line spacing: 1.1 2. 设置智能提示大小写不敏感 在设置中搜索sense, 找到配置节点 Editor->General-& ...

  9. jQuery ajax参数后台获取不到的问题

    <script type="text/javascript"> init(); var alldate = {a : "0",b:"1&q ...

  10. vs2010 在函数级别设置优化

    平时开发的时候,为了方便调试,visual studio 的Configuration 设置成Release. 同时为了事后调试,Optimization总是设置成Disabled.这样做是方便查看变 ...