徐无忌MySQL笔记:什么是索引?MySQL有哪几种索引?

徐无忌MySQL笔记:什么是索引?MySQL有哪几种索引?

完成:第一遍

1.什么是索引?

索引用于快速找出在某行数据,如果不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行

表越大,查询数据所花费的时间就越多,通过索引MySQL能够快速到达一个位置去搜索数据文件,节省很大一部分时间

2.索引有哪些特点?

特点一:MySQL可以给任意字段设置索引

特点二:创建索引和维护索引要耗费时间,并且随着数据量的增加所耗费的时间也会增加,当对表中的数据进行增加、删除、修改时,索引也需要动态的维护,降低了数据的维护速度

特点三:索引占用一定的空间,我们知道数据表中的数据也会有最大上线设置的,如果我们有大量的索引,索引文件可能会比数据文件更快达到上线值

3.索引的使用原则是什么?

原则一:并不是每个字段度设置索引就好,也不是索引越多越好

原则二:对经常更新的表就避免对其进行过多的索引,对经常用于查询的字段应该创建索引

原则三:一个字段,如果重复的值很多,不要建立索引,比如性别字段上只有男,女两个不同值;相反的,如果不同值较多可以建议使用索引

4.索引的分类有哪三类?

(1)单列索引
一个索引只包含单个列,一个表中可以有多个单列索引
单列索引包含:

一,普通索引:MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一点

二,唯一索引:索引列中所有的值必须是唯一的比如身份证号,但是允许里面有空值

三,主键索引:是一种特殊的唯一索引,不允许里面有空值

(2)组合索引

对表中的多个字段进行组合,然后创建索引
只有在查询条件中使用了这些字段的左边字段时
索引才会被使用,使用组合索引时遵循最左前缀匹配原则

(3)全文索引

全文索引只有在MyISAM引擎支持,在CHAR,VARCHAR,TEXT类型字段上可以使用全文索引

全文索引就是在一堆文字中,通过其中的某个关键字等,就能找到该字段所属的记录行,比如有“你好, …” 通过“你好”,可能就可以找到该条记录

5.如何查看查询语句是否使用索引?

通过EXPLAIN关键字+真正执行的SQL语句,可以查看索引是否正在被使用,并且输出其使用的索引的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值