联合索引又叫复合索引。对于复合索引: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排序,临时表和表扫描。

4.MySQL能在多个列上创建索引。一个索引可以由最多15个列组成。(在CHAR和VARCHAR列上,你也可以使用列的前缀作为一个索引的部分)。

注意:

一:

对于CHAR和VARCHAR列,你可以索引列的前缀。这更快并且比索引整个列需要较少的磁盘空间。在CREATE TABLE语句中索引列前缀的语法看起来像这样:

KEY index_name (col_name(length))

下面的例子为name列的头10个字符创建一个索引:

mysql> CREATE TABLE test (

name CHAR(200) NOT NULL,

KEY index_name (name(10)));

对于BLOB和TEXT列,你必须索引列的前缀,你不能索引列的全部。

二:

聚集索引

一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。聚集索引确定表中数据的物理顺序。Mysql中myisam表是没有聚集索引的,innodb有(主键就是聚集索引),聚集索引在下面介绍innodb结构的时有详细介绍。

参考:

http://blog.csdn.net/turkeyzhou/article/details/8182636

mysql的联合索引_mysql联合索引详解相关推荐

  1. mysql explain 索引_MySql中Explain详解与索引最佳实践

    使用EXPLAIN关键字可以模拟优化器执行SQL语句,从而知道MySQL是 如何处理你的SQL语句的.分析你的查询语句或是结构的性能瓶颈 下面是使用 explain 的例子: 在 select 语句之 ...

  2. mysql 用户管理表_Mysql—用户表详解(mysql.user)

    MySQL 数据库 Mysql-用户表详解(mysql.user) MySQL是一个多用户管理的数据库,可以为不同用户分配不同的权限,分为root用户和普通用户,root用户为超级管理员,拥有所有权限 ...

  3. 如何查看mysql备份的情况_MySQL数据库备份详解(示例代码)

    原文:MySQL数据库备份详解 对于任何数据库来说,备份都是非常重要的 数据库复制不能取代备份的作用 比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据 ...

  4. mysql 长事务查询_MySQL长事务详解

    前言: 『入门MySQL』系列文章已经完结,今后我的文章还是会以MySQL为主,主要记录下近期工作及学习遇到的场景或者自己的感悟想法,可能后续的文章不是那么连贯,但还是希望大家多多支持.言归正传,本篇 ...

  5. mysql myisam表分区_MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)

    一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过了1000万条,那么就可以根据入库日期将表分区,也可以根据所在地将表 ...

  6. mysql实现悲观锁_mysql 悲观锁详解

    悲观锁指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态.悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层 ...

  7. mysql as 后面字段_mysql 字段as详解及实例代码

    mysql 字段使用as 在mysql中,select查询可以使用AS关键字为查询的字段起一个别名,该别名用作表达式的列名,并且别名可以在GROUP BY,ORDER BY或HAVING等语句中使用. ...

  8. mysql binlog sql统计_mysql的binlog详解

    binlog是mysql记录操作的二进制日志文件,有三种格式可选,但是老旧的SBR已经不适合现在大多数业务需求,所以大多数都建议用MBR和RBR,即mixed或row,而解析他的原因,几乎都只有一个, ...

  9. mysql 分号子查询_MySQL子查询详解

    子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从 MySQL 4.1 开始引入,在 SELECT 子句中先计算子查询,子查询结果作为外层另一个查询的过滤条件,查询可以基于一个表或者多个表 ...

  10. mysql week函数参数_MySQL week()函数详解

    一枚小产品的学习记录 在做sql练习题时了解到的新函数,做个简要的记录,因非技术人员(专业人士),可能会存在一定的局限性,若有不严谨的地方,请指正. 在日常的业务统计需求中,可能会有类似查询" ...

最新文章

  1. PHP的内存泄露问题与垃圾回收
  2. 20155317《网络对抗》Exp4 恶意代码分析
  3. 太努力工作的年轻人,都有病吧!?
  4. django框架预备知识
  5. mysql导入的excel更新_excel导入数据库,存在则更新不存在添加
  6. mysql limit 表的长度_mysql中的limit用法有哪些(推荐)
  7. python教学视频q_#python如何用pyqt5打开视频(还有PPT)并输出到QLabel上?#python怎么运行视屏教程...
  8. 计算机管理里面蓝牙音频有问题,win10更新到1903版,蓝牙音频存在问题,微软终于给出了解决方法-win10更新...
  9. oracle 密码管理,【转载】Oracle密码管理五大要点(一)
  10. 程序员如何内外兼修?
  11. dw添加下拉菜单_Dreamweaver怎么创建下拉菜单
  12. 2018年——不平凡的一年
  13. python对图片进行裁剪_python利用四个坐标点对图片进行裁剪
  14. 当读/写磁盘文件时,read/write是不带缓冲机制的吗?请说明原因。
  15. MachineLearning in Action (机器学习实战)源码和数据集下载地址
  16. 去北美读PHD前给你泼的“冷水”,有志于去北美深造的人读一读
  17. python+selenium+pycharm自动化测试环境搭建
  18. Spark中如何使用矩阵运算间接实现i2i
  19. 安装win7激活提示0x80072F8F
  20. vue中PDF文件转图片方法

热门文章

  1. SSRF漏洞之常见Bypass篇
  2. php 车牌号限号,不限行也不限号!还能送车牌?这种车你考虑吗?
  3. halcon双目搭建生成3d点云模型
  4. Dire Wolf(区间DP)
  5. 数学符号的意义总结(未完待续)
  6. 2023秋招360公司NLP算法岗面经
  7. [天池最新比赛] 云上进化”2022全球AI生物智药大赛” #¥150000
  8. 基于PHP+小程序(MINA框架)+Mysql数据库的小说小程序系统设计与实现
  9. 360 || 2021校园招聘的一道笔试题思路分享
  10. matlab抓取网页信息,如何利用Matlab抓取网页数据