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会使用全表扫描,此时索引失效
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/115996.html