mysql索引

mysql索引

索引类型

主键索引

我们设置主键时,默认有主键索引;

alter table 表明 add primary key 表明(列名)

单值索引

一个索引对应一个列;

create index 表名_列名_index on 表名(列名)

组合索引

一个索引对应多个列;

create index 表名_列名_index on 表名(列名1,列名2)

组合索引最左前缀原则,必须出现最左侧的列

假如有a,b,c列,索引为a,b,那么必须出现a才正确;

select * from demo where xx = a and yy = b正确

select * from demo where xx = b and yy = a正确

select * from demo where xx = a and yy = c正确

select * from demo where xx = c and yy = b错误

唯一索引

保证数据唯一,且不为null

全文索引

我们like查询时索引失效,查询效率低,使用全文索引效率高;

查看索引

show index from 表名

何时创建索引

  • 主键索引
  • 频繁作为查询条件
  • 排序的列
  • 与其他表关联的列,外键
  • 分组的字段

何时不创建索引

  • 表记录太少
  • 增删改频繁
  • where条件用不到
  • 数据重复且平均,如性别

聚簇索引

找到了索引就能找到数据

非聚簇索引

找到了索引不能直接找到数据

区别

  1. innodb的索引为ibd类型文件,索引和数据一块;
  2. myIsam的索引文件为myi,数据文件为myd类型文件,索引数据分离;
  3. innodb引擎采用主键索引就是聚簇索引,使用非主键索引查询是非聚簇索引,非主键查询会回表查询出主键索引,通过主键索引来查找数据;
  4. myIsam引擎只查询主键为聚簇索引,查询其他为非聚簇索引索引;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值