MySQL笔记(五)索引 index

本文详细介绍了Mysql数据库中索引的原理与作用,包括如何创建、使用和维护索引,以及索引对查询速度的影响。同时,文章还探讨了索引的优缺点,如加快查询速度的同时也会增加数据库的负担。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是我在学习Mysql之路上做的笔记,今天将它粘出来。这一篇主要是Mysq的l索引index。有错误的欢迎大家指出。。

数据库的创建参考我的另一篇博客 https://blog.youkuaiyun.com/csdnluolei/article/details/83409945

#索引

原理:当对表字段创建一个索引,数据库就会创建一个索引页,索引页不仅存储的有索引的数据,还保存了索引数据在数据库的物理位置;

作用:加快查询速度,类似一本书的目录,索引可以避免对表全面扫描;

1.如果列很少,不建议建索引;

2.主键和唯一键会自动创建索引;

3.适合在常用的字段创建索引;

在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;

在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。

缺点:

创建索引和维护索引要耗费时间

索引需要占物理空间

#创建索引

CREATE INDEX index_tb_emp ON tb_emp(ename);

#使用索引,ename='King'就使用了索引

SELECT *FROM tb_emp WHERE ename='King';

SELECT *FROM tb_emp;

#多次insert,update,DELETE之后会有索引碎片,垃圾文件会影响查询速度

#最一个月重组索引一次,也就是删除索引再建索引

#删除索引2种方法alter和drop

ALTER TABLE tb_emp DROP INDEX index_tb_emp;

DROP INDEX index_tb_emp ON tb_emp;

#创建索引

CREATE INDEX index_tb_emp ON tb_emp(ename);

#如果有一个CHAR(255)的列,如果在前10个或30个字符内,多数值是惟一的,则不需要对整个列进行索引。

#短索引不仅可以提高查询速度而且可以节省磁盘空间、减少I/O操作。

DESC tb_emp;

#创建短索引

CREATE INDEX index_tb_emp ON tb_emp(ename(3));

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值