mysql高级学习之索引的优劣势及规则使用

这篇文章主要给大家介绍了关于mysql高级学习之索引的优劣势及规则使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、索引的优劣势

优点:可以快速的检索 、可以加快分组和排序

缺点: 占用储存空间、降低数据表的修改操作

二、索引的分类

主键索引

即主索引,根据主键 pk_clolum(length)建立索引,不允许重复,不允许空值

唯一索引用来建立索引的列的值必须是唯一的,允许空值
普通索引用表中的普通列构建的索引,没有任何限制
全文索引用大文本对象的列构建的索引
全文索引用大文本对象的列构建的索引;
组合索引用多个列组合构建的索引,这多个列中的值不允许有空值。

三、使用索引的规则

1、适合建立索引的情况

  • 主键自动建立唯一索引;
  • 经常作为查询条件在 WHERE 或者 ORDER BY 语句中出现的列要建立索引;
  • 作为排序的列要建立索引;
  • 查询中与其他表关联的字段,外键关系建立索引;
  • 高并发条件下倾向组合索引;
  • 用于聚合函数的列可以建立索引,例如使用了 max(column_1)或者count(column_1)时的 column_1 就需要建立索引。

2、不适合建立索引的情况

  • 经常增删改的列不要建立索引;
  • 有大量重复的列不建立索引;
  • 表记录太少不要建立索引。

3、索引失灵的情况

  • 在组合索引中不能有列的值为 NULL,如果有,那么这一列对组合索引就是无效的;
  • LIKE 操作中,'%aaa%'不会使用索引,也就是索引会失效,但是‘aaa%'可以使用索引;
  • 在索引的列上使用表达式或者函数会使索引失效;
  • 在查询条件中使用不等于,包括<符号、>符号和!=会导致索引失效;
  • 在查询条件中使用 IS NULL 或者 IS NOT NULL 会导致索引失效;
  • 字符串不加单引号会导致索引失效;
  • 在查询条件中使用 OR 连接多个条件会导致索引失效,除非 OR 链接的每个条件都加上索引;
  • 如果排序的字段使用了索引,那么 select 的字段也要是索引字段,否则索引失效;
  • 尽量不要包括多列排序,如果一定要,最好为这队列构建组合索引。

四、关于索引的SQL

1、创建表的时候添加索引

1

2

3

4

5

6

7

8

9

— 创建表的时候添加索引

— INDEX 关键词

— myindex 索引的名称自己起的

— (username(16))添加到哪一个字段上

CREATE TABLE mytable(

ID INT NOT NULL,

username VARCHAR(16) NOT NULL,

INDEX myindex (username(16))

);

2、创建表过后添加索引

1

2

3

4

5

6

— 添加索引

— myindex索引的名字(自己定义)

— mytable 表的名字

CREATE INDEX myindex ON mytable(username(16));

或者

ALTER TABLE mytable ADD INDEX myindex(username);

3 查看索引

1

2

— mytable 表的名字

show index FROM mytable;

4、删除索引

1

2

3

4

5

— myindex索引的名字(自己定义)

— mytable 表的名字

DROP INDEX myindex ON mytable;

或者

ALTER TABLE mytable DROP INDEX myindex;

总结

到此这篇关于mysql高级学习之索引的优劣势及规则使用的文章就介绍到这了,更多相关mysql高级索引内容请搜索钦钦技术栈以前的文章或继续浏览下面的相关文章希望大家以后多多支持钦钦技术栈!

原文链接:https://blog.csdn.net/m0_55886240/article/details/114576113

版权声明:本文(即:原文链接:https://www.qin1qin.com/catagory/8599/)内容由互联网用户自发投稿贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 630367839@qq.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年 8月 4日 3:51:03
下一篇 2022年 8月 4日 3:51:13

软件定制开发公司

相关阅读

发表回复

登录后才能评论
通知:禁止投稿所有关于虚拟货币,币圈类相关文章,发现立即永久封锁账户ID!