mysql可不可以创建联合索引


这篇文章主要介绍“mysql可不可以创建联合索引”,在日常操作中,相信很多人在mysql可不可以创建联合索引问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql可不可以创建联合索引”的云主机域名免费试用疑惑有所帮助!接下来,请跟着小编一起来学习吧! mysql可以创建联合索引。MySQL允许用户创建一个最多包含16列的联合索引,创建方法有两个:1、创建表时创建,语法“CREATE TABLE 表名 (列名1 类型 PRIMARY KEY,列名2 类型,列名3 类型,…INDEX 索引名 (列名2,列名3…));”;2、修改表时创建,语法“CREATE INDEX 索引名 ON 表名(列名2,列名3,列名4);”。本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。
什么是联合索引?联合索引的本质:最左匹配两个或更多个列上的索引被称作联合索引,联合索引又叫复合索引。MySQL允许用户创建一个最多包含16列的复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。
查询优化器将复合索引用于测试索引中所有列的查询,或者测试第一列,前两列等的查询。如果在索引定义中以正确的顺序指定列,则单个复合索引可以在同一个表上加速这些类型的查询。创建表时创建联合索引语法:在此语法中,联合索引由三列c2,c3和c4组成。修改表时创建联合索引可以使用以下CREATE INDEX语句将复合索引添加到现有表:请注意,如果您在(c1,c2,c3)上有复合索引,则您将在以下列组合之一上建立索引搜索功能:例如:如果列不形成索引的最左前缀,则查询优化器无法使用索引执行查找。例如,以下查询无法使用复合进行查找:MySQL联合索引示例我们将使用示例数据库中的employees表进行演示。以下语句在lastName和firstName列上创建联合索引:首先,name索引可用于指定lastName值的查询中的查找,因为lastName列是索引的最左前缀。其次,name索引可用于指定lastName和firstName值组合的值的查询。name索引用于在以下的查询查找:1)查找姓氏为的员工 Patterson此查询使用名称索引,因为索引的最左边前缀(即lastName列)用于查找。您可以通过EXPLAIN在查询中添加子句来验证这一点:这是输出:2)查找姓氏Patterson和名字的员工Steve:在此查询中,两个lastName和firstName列都用于查找,因此,它使用name索引。我们来核实一下:输出是:3)查找姓氏Patterson和名字是Steve或的员工Mary:此查询类似于第二个查询,其中两个lastName和firstName列都用于查找。以下语句验证索引用法:输出是:查询优化器不能在以下查询中使用name索引进行查找,因为只使用了firstName不是索引最左前缀的列:类似地,查询优化器不能在以下查询中使用名称索引进行查找,因为firstName或者lastName列用于查找。到此,关于“mysql可不可以创建联合索引”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注开发云网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: mysql中金额用哪个类型

本篇内容主要讲解“mysql中金额用哪个类型”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql中金额用哪个类型”吧! 在mysql中,金额用“DECIMAL”类型。DECIMAL类型是专门为财务相关问题而设计

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 04/02 09:18
下一篇 04/02 09:18

相关推荐