mysql的索引

本文介绍了数据库索引的优点和缺点,包括提升查询速度的同时降低增删改效率及增加表文件大小等问题,并详细阐述了索引使用的最佳实践,如避免过度索引、选择合适的索引条件列等。此外,还介绍了不同类型的索引及其应用场景,如普通索引、唯一索引、主键索引和全文索引,并提供了具体的SQL操作命令。

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

一、建立索引的优缺点

1、好处:
①加快了查询速度
2、坏处:
①降低了增删改的速度
②增大了表的文件大小(索引文件甚至可能比数据文件还大)

二、索引的使用原则

①不要过度索引
②索引条件列(where后面最频繁的条件比较适宜索引)
③索引散列值,过于集中的值不要索引

三、索引的类型

普通索引(index):加快查询速度
唯一索引(unique):行上的值不能重复
主键索引(primary key):不能重复。
    主键必唯一,但是唯一索引不一定是主键。
    一张表上只能有一个主键,但是可以有一个或者多个唯一索引
全文索引(fulltext):一般类型是文本格式,即text,而且这个只针对myisam引擎

四、查看一张表上所有索引

show index from 表名;

这里写图片描述

五、建立索引

alter table 表名 add index [索引名] (列名);   <--添加普通索引
alter table 表名 add unique [索引名] (列名);   <--添加唯一索引
alter table 表名 add fulltext [索引名] (列名);   <--添加全文索引
alter table 表名 add primary key (列名);   <--添加主键
create index 索引名 on 表名(列名1,列名2,...);  <--添加联合索引
create index 索引名 on 表名(列名(8));   <--对表中列的前8个字符创建索引

备注:索引名可以不加,默认是和列名一样

六、删除索引

alter table 表名 drop index 索引名;
alter table 表名 drop primary key; 

七、案例

假设有新闻表15行,10行上面有索引,共500w行数据,如何快速导入数据?

①把表的索引全部删除
②导入数据
③导入数据完毕后,集中建立索引

八、全文索引

全文索引主要是针对myisam引擎的,在mysql默认情况下,对于中文的意义不大
因为英文有空格,标点符号开拆成单词,进而对单词进行索引;而对于中文,mysql无法识别每个中文词。

1、用法
select * from 表名 where match (全文索引名) against ('keyword');

2、关于全文索引的停止词
全文索引不针对非常频繁的词做索引,如thisis,you,my 等等。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值