什么是联合索引?

联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。

两个或更多个列上的索引被称作复合索引。

利用索引中的附加列,您可以缩小搜索的范围,但使用一个具有两列的索引 不同于使用两个单独的索引。复合索引的结构与电话簿类似,人名由姓和名构成,电话簿首先按姓氏对进行排序,然后按名字对有相同姓氏的人进行排序。如果您知 道姓,电话簿将非常有用;如果您知道姓和名,电话簿则更为有用,但如果您只知道名不姓,电话簿将没有用处。

所以说创建复合索引时,应该仔细考虑列的顺序。对索引中的所有列执行搜索或仅对前几列执行搜索时,复合索引非常有用;仅对后面的任意列执行搜索时,复合索引则没有用处。

如:建立 姓名、年龄、性别的复合索引。

create table test(

a int,

b int,

c int,

KEY a(a,b,c)

);

优: select * from test where a=10 and b>50

差: select * from test where a50

优: select * from test order by a

差: select * from test order by b

差: select * from test order by c

优: select * from test where a=10 order by a

优: select * from test where a=10 order by b

差: select * from test where a=10 order by c

优: select * from test where a>10 order by a

差: select * from test where a>10 order by b

差: select * from test where a>10 order by c

优: select * from test where a=10 and b=10 order by a

优: select * from test where a=10 and b=10 order by b

优: select * from test where a=10 and b=10 order by c

优: select * from test where a=10 and b=10 order by a

优: select * from test where a=10 and b>10 order by b

差: select * from test where a=10 and b>10 order by c

索引原则

1.索引越少越好

原因:主要在修改数据时,第个索引都要进行更新,降低写速度。

2.最窄的字段放在键的左边

3.避免file sort排序,临时表和表扫描.

1、复合索引使用的目的是什么?

:能形成索引覆盖,提高where语句的查询效率

2、一个复合索引是否可以代替多个单一索引?

:复合索引的使用原则是第一个条件应该是复合索引的第一列,依次类推,否则复合索引不会被使用

所以,正常情况下复合索引不能替代多个单一索引

3、在进行哪些类型的查询时,使用复合索引会比较有效?

:如果一个表中的数据在查询时有多个字段总是同时出现则这些字段就可以作为复合索引,形成索引覆盖可以提高查询的效率

4、符合索引中索引列的排序原则是什么?

:复合索引的使用原则是第一个条件应该是复合索引的第一列,依次类推

5、什么情况下不适合使用复合索引?

:建立索引的目的就是帮助查询,如果查寻用不到则索引就没有必要建立,另外如果数据表过大(5w以上)则有些字段(字符型长度超过(40))不适合作为索引,另外如果表是经常需要更新的也不适合做索引

mysql复合索引使用场景_mysql复合索引(联合索引)的使用场景相关推荐

  1. mysql 建立索引的例子_mysql建立合适的索引的例子

    在mysql数据库中,其实建索引也是一门学问,一个表中,索引并不是越多越好,而是适合你的业务才最重要.那么建立索引的时候,我们应该从以下几点去考量. 1. 索引字段越小越好,像varchar(10)肯 ...

  2. 【MySQL】索引原理(三):联合索引(最左前缀原则),覆盖索引,索引条件下推

    准备工作,下面的演示都是基于user_innodb表: DROP TABLE IF EXISTS `user_innodb`; CREATE TABLE `user_innodb` (`id` big ...

  3. mysql复合索引的应用场景_mysql复合索引(联合索引)的使用场景

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

  4. mysql索引优化规则_Mysql优化选择最佳索引规则

    索引的目的在于提高查询效率,其功能可类比字典,通过该索引可以查询到我们想要查询的信息,因此,选择建立好的索引十分重要,以下是为Mysql优化选择最佳索引的方法步骤: 1. 首先列出查询中所有使用的表, ...

  5. mysql教程联合索引_MySQL中的联合索引学习教程

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

  6. mysql的学习要点_MySQL中的联合索引的学习要点总结

    MySQL中的联合索引的学习要点总结 联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a ...

  7. mysql联合索引案例_mysql多个联合索引的案例分析

    mysql多个联合索引的案例分析 发布时间:2020-11-23 14:54:29 来源:亿速云 阅读:61 作者:小新 小编给大家分享一下mysql多个联合索引的案例分析,相信大部分人都还不怎么了解 ...

  8. mysql联合索失效_mysql联合索引注意事项,解决为啥联合索引无效的问题

    在数据查询的时候合理利用索引才更好地提高查询效率.今天遇到一个数据量不算太大(1000万左右)的表,但是查询特别慢,建立了userid,logtype,fromid 发现索引无效,查阅相关资料后发现联 ...

  9. mysql 聚合索引和聚簇索引_MySQL 聚簇索引 和覆盖索引

    一.聚簇索引 1.聚簇索引并不是一种单独所以,而是一种数据储存方式. InnoDB 的聚簇索引实际上在同一结构中保存了B-Tree 索引和数据行. 2.当表有聚簇索引时,它的数据行实际上存放在索引的叶 ...

最新文章

  1. 【NLP】 NLP领域最具影响力的国内外会议介绍
  2. 深度学习之基于Tensorflow2.0实现AlexNet网络
  3. Dijkstra解决POJ 2263
  4. 前端工具webpack4.0各个击破——html部分
  5. vSAN ReadyNode™中可以(也不能)更改的内容
  6. Extjs的打印解决方案
  7. u盘锁电脑_如何给u盘设置密码 给u盘设置密码方法【步骤详解】
  8. 将byte数组转换成十进制字符串输出_outputStream与InputStream使用只能传输字节byte...
  9. php 二位数组排序
  10. 公安部4号令中关于电子邮服务器
  11. 原来这就是Java中的模板设计模式,太easy太实用了!
  12. 李航教授展望自然语言对话领域:现状与未来
  13. go 实现单链表反转
  14. com.lowagie.text.DocumentException: Font ‘STSong-Light‘ with ‘UniGB-UCS2-H‘
  15. linux备份目录命令tar,Linux中使用tar命令备份与还原数据
  16. Ubuntu搭建饥荒(Don't Starve Together)游戏服务器
  17. Python:二次曲线拟合(节约生命法拟合)
  18. ElasticKibana 安装部署
  19. vue 给圆遮盖物添加文字 高德地图_【高德地图开发4】---增加覆盖物setMapTextZIndex...
  20. 【MySQL运维】使用gh-ost工具实现大表在线DDL变更

热门文章

  1. 如何在iPhone和iPad上隐藏隐藏的相册
  2. 发现一个效果超好的视频换脸平台
  3. Bzoj4197 寿司晚宴
  4. PS 图像调整算法— —渐变映射
  5. vue+element-ui el-input验证手机号 / 身份证
  6. mysql联合索引abc
  7. idea如何设置注释模板,图文超详细讲解
  8. QCustomPlot 缩放拖动卡顿
  9. 2.04 商品服务-2-品牌管理
  10. 从产品经理角度看百度之殇和头条之崛起,Do a CEO as a product manager