mysql索引类型有哪些,索引失效是什么

mysql索引类型
NORMAL:表示普通索引

UNIQUE(唯一索引):表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique

FULLTEXT(全文索引): 表示 全文搜索的索引。 full textl用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。

PRIMARY KEY(主键索引):

在实际操作过程中,应该选取表中哪些字段作为索引?

为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引,有7大原则:

1.选择唯一性索引
2.为经常需要排序、分组和联合操作的字段建立索引
3.为常作为查询条件的字段建立索引
4.限制索引的数目
5.尽量使用数据量少的索引
6.尽量使用前缀来索引
7.删除不再使用或者很少使用的索引

怎么创建索引呢
1.可以使用navicat工具连接数据库
在这里插入图片描述
在这里是手动添加需要添加索引的字段。

2.用sql添加索引
1.PRIMARY KEY(主键索引)
mysql>ALTER TABLE table_name ADD PRIMARY KEY ( column )
2.UNIQUE(唯一索引)
mysql>ALTER TABLE table_name ADD UNIQUE (column )
3.INDEX(普通索引)
mysql>ALTER TABLE table_name ADD INDEX index_name ( column )
4.FULLTEXT(全文索引)
mysql>ALTER TABLE table_name ADD FULLTEXT ( column )
5.多列索引
mysql>ALTER TABLE table_name ADD INDEX index_name ( column1, column2, column3 )

索引查询失效的情况
1、like 以%开头,索引无效;当like前缀没有%,后缀有%时,索引有效。
2、or语句前后没有同时使用索引。当or左右查询字段只有一个是索引,该索引失效,只有当or左右查询字段均为索引时,才会生效
3、组合索引,不是使用第一列索引,索引失效。
4、数据类型出现隐式转化。如varchar不加单引号的话可能会自动转换为int型,使索引无效,产生全表扫描。
5、在索引字段上使用not,<>,!=。不等于操作符是永远不会用到索引的,因此对它的处理只会产生全表扫描。 优化方法: key<>0 改为 key>0 or key<0。
6、对索引字段进行计算操作、字段上使用函数。(索引为 emp(ename,empno,sal))
7、当全表扫描速度比索引速度快时,mysql会使用全表扫描,此时索引失效

Guess you like

Origin blog.csdn.net/qq_42862247/article/details/111557352