创建表:

CREATE TABLE article (

id INT (10) UNSIGNED NOT NULL PRIMARY KEY auto_increment,

author_id INT (10) UNSIGNED NOT NULL,

category_id INT (10) UNSIGNED NOT NULL,

VIEW INT (10) UNSIGNED NOT NULL,

comments INT (10) UNSIGNED NOT NULL,

title VARBINARY (255) NOT NULL,

content text NOT NULL

);

插入数据:

INSERT INTO article (

author_id,

category_id. VIEW,

omments,

title,

content

)VALUES

(1, 1, 1, 1, '1', '1'),

(2, 2, 2, 2, '2', '2'),

(1,1,3,3,'3','3');

创建索引:

create index idx_articl_ccv on article(category_id,comments,view);

分析:

查询和排序字段正好符合索引--> 用到索引

explain select id,author_id from article where category_id = 1 and comments =1 order by view desc limit 1;

交换顺序--> 依旧使用到了索引

去除中间的条件--> 依旧使用了索引:

explain select id,author_id from article where category_id = 1 order by view desc limit 1;

去除开头条件--> 没有使用索引了:

explain select id,author_id from article where comments =1 order by view desc limit 1;

总结:

所以在复合索引中,索引第一位的column很重要,只要查询语句包含了复合索引的第一个条件,基本上就会使用到该复合索引(可能会使用其他索引)。我们在建符合索引的时候应该按照column的重要性从左往右建。

mysql 复合索引_Mysql复合索引的顺序和必要值相关推荐

  1. mysql 复合索引_mysql联合索引(复合索引)详解

    联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a,b,c). 可以支持a | a,b| ...

  2. mysql navicat 组合索引_mysql组合索引与字段顺序

    很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引! 一般来说,可能是某些字段没有创建索引,或者是组合索引中字段的顺序与查询语句中字段的顺序不符. 看下面的例子: 假设 ...

  3. mysql联合索引和单索引_mysql联合索引跟单列索引的区别

    为了提高数据库效率,建索引是家常便饭:那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下. 一.联合索引测试 注: ...

  4. mysql 堆表_Mysql聚集索引和非聚集索引(堆组织表和索引组织表)

    Mysql聚集索引和非聚集索引(堆组织表和索引组织表) 1.堆组织表(HOT)和索引组织表(IOT)有什么区别? myisam使用的堆组织表(Heap Organize Table, HOT),没有聚 ...

  5. mysql的联合索引_mysql联合索引详解

    联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a,b,c). 可以支持a | a,b| ...

  6. mysql按升序创建索引_Mysql创建索引

    摘自:http://blog.chinaunix.net/uid-25063573-id-3032578.html 1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技 ...

  7. mysql 创建覆盖索引_MySql覆盖索引

    mysql的innodb引擎通过搜索树方式实现索引,索引类型分为主键索引和二级索引(非主键索引),主键索引树中,叶子结点保存着主键即对应行的全部数据:而二级索引树中,叶子结点保存着索引值和主键值,当使 ...

  8. mysql按升序创建索引_MySQL建立索引的基础规则

    1.mysql索引(基础与规则) 索引规则: 一.MySQL建表,字段需设置为非空,需设置字段默认值. 二.MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL. 三.MySQL建表 ...

  9. mysql的联合索引_mysql联合索引

    联合索引 概念 联合索引又叫复合索引,即一个覆盖表中两列或者以上的索引,例如: index_name(column a,column b) 1 创建方式 执行alter table语句时创建 alte ...

最新文章

  1. thymeleaf的能用在什么地方_细品 Spring Boot+Thymeleaf,还有这么多好玩的细节!
  2. 使用RMAN VALIDATE验证数据和备份
  3. c语言测验答案,C语言测验题答案.doc
  4. kvm安装完全版 rhel6
  5. 《机器学习基石》---感知机算法
  6. idea 中maven依赖报错3部曲
  7. shell中source的作用
  8. Android 进程间通信——Service、Messenger
  9. Luogu-P1018 乘积最大
  10. 小说题目和章节题目还没想好
  11. 2021年4大免费ER图工具
  12. 绘制电气电路中的电阻——Visio制图总结【电控类】(二)
  13. Phase2 Day18 SQL 约束
  14. 公差与配合查询计算过程讲解
  15. 计算机备份打印机驱动程序,如何在Windows上备份打印机驱动程序和队列
  16. 页面提交时,显示“提交中”等待效果
  17. 【LeetCode】Day3-Excel表列名称
  18. 触摸式计算机屏幕,触控屏笔记本好不好 触摸屏笔记本优缺点分析【详细介绍】...
  19. GDB 调试 Nginx 磨刀不误砍柴工
  20. 计算机word上下左右边距,Word页边距调整设置(上下左右边距,2003-2013)

热门文章

  1. 动员计算机二级考试主题班会,“期中考试动员会”主题班会设计
  2. matlab 三维图像投影,matlab – 3D平面上的三维灰度体积投影
  3. r5 5600g评测
  4. wordpress手把手仿站操作
  5. C++实例(九)工具栏和状态栏
  6. html5苹果怎么设置,苹果iphone5虚拟快捷键如何设置 iphone5“小太阳”设置方法图解...
  7. (马士兵教育)如何提高ES分布式系统的可用性以及性能最大化
  8. Sybase的客户端工具
  9. Win10《芒果TV》更新v3.8.0初夏版:全新视觉体验,即刻分享视频
  10. icloud连接服务器时出现问题_iphone8 icloud连接服务器时出错怎么办?(附解决方法)...