【Mysql】索引

本文详细介绍了数据库索引的作用、类型及使用方法。索引能够显著提高SELECT语句的执行速度,但会增加存储空间并影响DML操作。主要分类包括主键索引、唯一索引和普通索引。合适的索引应用应考虑字段的查询频率、唯一性和更新频率。添加和删除索引可通过ALTER TABLE和CREATE/DROP INDEX语句完成。
摘要由CSDN通过智能技术生成

索引

1.概述

索引能提升 select语句的执行效率,用空间换取时间
 
当没有索引时:
执行select * from news where id = 9; 会进行全盘扫描,依次匹配是否相等,并且对于主键约束、唯一性约束的字段即使查找到了也会扫描到表尾
 
当创建索引后: 会形成索引的数据结构,比如二叉树
在这里插入图片描述
索引也会占用空间,使表的内存更大。同时对 dml(insert、delete、update)语句的效率有影响

 

2.分类

a.主键索引

主键索引,创建主键约束(primary key)时会自动创建主键索引

b.唯一索引 (UNIQUE)

唯一索引,创建唯一性约束(unique key)时会自动创建唯一索引

c.普通索引 (INDEX)

使用最多的

d.全局索引

一般Mysql中不使用全文索引,而是使用:全文搜索
Solr ElasticSearch (ES)

 

3.使用

a.查询索引:

show index from t01;

b.添加索引:

alter table add primary key (id); #主键索引
create unique index id_index on t01 (id); #唯一索引
create index id_index on t01 (id); #普通索引

c.删除索引:

drop index id_index on t01;
--
alter table t01
drop primary key; #主键索引
--
alter table 
drop index 索引名; #唯一索引,普通索引(同时也是删除唯一性约束、外键约束的方式)

小结:哪些列上适合使用索引:

  • 1.较频繁的作为查询条件字段应该创建索引
    select from emp where emno 1
  • 2.唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件
    select from emp where sex = ‘男’
  • 3.更新非常频繁的字段不适合创建索引
    select from emp where logincount 1
  • 4.不会出现在VHERE子句中字段不该创建索引
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MySQL索引是一种数据结构,可以帮助MySQL快速定位和访问表中的数据。使用索引可以提高查询效率,降低数据库的负载。下面是MySQL索引的一些基本概念和使用方法: 1. 索引类型 MySQL支持多种类型的索引,包括B树索引、哈希索引、全文索引等。其中,B树索引是最常用的一种,也是默认的索引类型。B树索引可以用于精确匹配和范围查询,而哈希索引主要用于等值查询,全文索引则用于文本检索。 2. 索引创建 可以在创建表时指定索引,例如: ``` CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(50), INDEX idx_email (email) ); ``` 也可以在已有的表上添加索引,例如: ``` ALTER TABLE users ADD INDEX idx_name (name); ``` 3. 索引使用 查询语句中可以使用WHERE子句和ORDER BY子句来利用索引,例如: ``` SELECT * FROM users WHERE email = 'example@example.com'; SELECT * FROM users WHERE name LIKE 'John%' ORDER BY id DESC; ``` 需要注意的是,索引并不是越多越好,过多的索引会占用过多的磁盘空间并降低写操作的性能。因此,需要根据实际情况选择合适的索引。同时,还需要定期对索引进行维护,包括优化查询语句、删除不必要的索引等。 4. 索引优化 MySQL提供了一些工具来优化索引,例如EXPLAIN命令可以帮助分析查询语句的执行计划,找出慢查询和不必要的全表扫描。可以使用OPTIMIZE TABLE命令来优化表的索引和碎片,从而提高查询性能。还可以使用缓存来避免频繁的查询操作,例如使用Memcached或Redis等缓存工具。 以上就是MySQL索引的一些基本概念和使用方法,需要根据实际情况进行选择和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

り澄忆秋、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值