mysql前缀索引语句_mysql 前缀索引

mysql前缀索引语句_mysql 前缀索引联合索引概念联合索引又叫复合索引,即一个覆盖表中两列或者以上的索引,例如:index_name(columna,columnb)1创建方式执行altertable语句时创建altertabletable_nameaddindexindex_name(column_list)1index_name是创建的联合索引的名字,可以没有,没有的话系统会根据该索引包含的第一列来赋名称;tabl…

大家好,又见面了,我是你们的朋友全栈君。

联合索引

概念

联合索引又叫复合索引,即一个覆盖表中两列或者以上的索引,例如:

index_name(column a,column b)

1

创建方式

执行alter table语句时创建

alter table table_name add index index_name(column_list)

1

index_name是创建的联合索引的名字,可以没有,没有的话系统会根据该索引包含的第一列来赋名称;table_name是要创建该索引的表名;column_list为该索引所包含的表的字段名。

执行create index语句时创建

create index index_name on table_name(column_list)

1

此种情况是在表已经创建好的情况下,再来创建复合索引。index_name和column_list同上;table_name是要创建索引的表名。

例子

create table stu

(

id int,

name varchar(10),

age int,

primary key(id)

);

ALTER TABLE stu ADD INDEX LianHeIndex (name,age);

或者

create index LianHeIndex on stu(name,age);

1

2

3

4

5

6

7

8

9

10

执行上面的语句后在表stu中就创建好了一个名叫LianHeIndex联合索引,在使用联合索引的时候,我们遵守一个最左原则,即INDEX LianHeIndex (name,age)支持name|name age组合查询,而不支持age查询;换句话说,在执行

select * from stu where name=?

1

或者

select * from stu where name=? and age=?

1

时联合索引才会有效,如果执行

select * from stu where age=?

1

则联合索引不会生效。

如果我们是在name和age上分别创建单个索引的话,由于mysql查询每次只能使用一个索引,所以虽然这样已经相对不做索引时全表扫描提高了很多效率,但是如果在name、age两列上创建复合索引的话将带来更高的效率。如果我们创建了(name, age)的复合索引,那么其实相当于创建了(name)、(name,age)两个索引,这被称为最佳左前缀特性。

因此我们在创建复合索引时应该将最常用作限制条件的列放在最左边,依次递减。

注意事项

只要列中包含有NULL值都将不会被包含在索引中

复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的,所以我们在数据库设计时尽可能不要让字段的默认值为NULL。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142246.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mtk驱动安装_UBOOT下U盘驱动移植

    mtk驱动安装_UBOOT下U盘驱动移植对于MTKCamera驱动移植一般分为四部分:1、硬件IO口配置;2、Camera驱动移植;3、上电时序;4、修改i2c控制器;硬件电路:1、GPIO配置打开 mediatek\dct\DrvGen.exe 选择mediatek\custom\xiaoxi\kernel\dct\dct\codegen.

    2022年10月26日
  • 3分钟教你子网划分–(内含习题讲解)

    3分钟教你子网划分–(内含习题讲解)一.IPV41.IP地址IP地址分为IPV4和IPV6,但现在目前大家所常用的为IPV4。IPV4是由32位二进制数组成,分成四组,每组八位。例如:11000000111100000000000000000000为了便于配置通常表示成点分十进制例如:192.168.1.1IPV6由128位组成,一般用冒号分隔,十六进制表示2.IPV4地址组成IPV4是由两部分组成,即:网络部分(NETWORK)主机部分(HOST)例:192.168.1.132网络部分:192.168.1

    2022年6月27日
  • 零基础学习3dmax建模有这4个技巧!你都知道?小白学习必备

    零基础学习3dmax建模有这4个技巧!你都知道?小白学习必备3dmax建模方法有很多,大致可分为内置建模模型、复合对象建模、二维图形建模、网格建模、多边形建模、面片建模和NURBS建模。确切地说,它们不应该有固定的分类,因为它们可以交互使用。【3D建模学习资料领取方式见文末】一、内置建模模型这个是3dMax中自带的一些模型,用户可以直接调用这些模型。比如想创建一个台阶,可以使用内置的几何体模型来创建,然后将其转换为”可编辑对象”,再对其进一步调节就行了。但是,使用基本几何形体和扩展几何形体来建模的优点在于快捷简单,只调节参数和摆放位置就可以完成模型

    2022年5月18日
  • 联想笔记本电脑的F1至F12键盘问题。怎么设置才能不按FN就使用F1「建议收藏」

    联想笔记本电脑的F1至F12键盘问题。怎么设置才能不按FN就使用F1「建议收藏」在BIOS中有相应调整开关,开机时进入BIOSCONFIGKeyboard/MouseChangeto"f1-f12keys"选项设置为Legacy。完成后保存重启就

    2022年8月1日
  • pycharm2021专业版永久激活码【2021最新】

    (pycharm2021专业版永久激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月25日
  • HLSL 与 GLSL 之间的映射关系参考[通俗易懂]

    HLSL 与 GLSL 之间的映射关系参考[通俗易懂]系统参数与內建的输入参数Direct3D有很多系统参数,而相应的,GLSL也有內建的输入参数的概念。他们的对应关系如下:HLSLGLSLSV_ClipDistancegl_ClipDistanceSV_CullDistance当存在ARB_cull_distance情况下gl_CullDistanceSV_Coveragegl_SampleMaskIn&gl_SampleMaskSV_Depth

    2022年7月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号