MySQL-索引

索引设计原则

对查询频次较高,且数据量比较大的表建立索引

使用唯一索引,区分度越高,使用索引的效率越高

索引可以有效的提升查询数据的效率,但索引数量不是多多益善,索引越多,维护索引的代价自然也就水涨船高。对于插入、更新、删除等DML操作比较频繁的表来说,索引过多,会引入相当高的维护代5,降低DML操作的效率,增加相应操作的时间消耗。另外索引过多的话,MySQL也会犯选择困难病,虽然最终仍然会找到一个可用的索引,但无疑提高了选择的代价

使用短索引,索引创建之后也是使用硬盘来存储的所以使用名字较短的索引较好

1) 单列索引 :即一个索引只包含单个列,一个表可以有多个单列索引

单列索引的值不允许重复但是可以为null,当值为null时添加的值可以重复都为空值

-- 给city表的city_name一个唯一索引
create UNIQUE index sy_city_name on city(city_name)
insert into `city` (`city_id`, `city_name`, `country_id`) values(1,'上海',1);
-- 查看索引
SHOW INDEX FROM city

2) 唯一索引 :索引列的值必须唯一,但允许有空值

主键索引 要求唯一 非空

使用时和单列索引差不多

3) 复合索引 :即一个索引包含多个列

索引中有多个列,遵循最左法则调用时从左到右依次进行调用

查看索引

show index form 表名

删除索引

drop index 索引名 on 索引所在的表名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值