mysql-索引

索引是什么

索引(index)是在数据库表的字段中添加,是为了提高查询效率存在的一种机制。
索引相当于书的目录,为了缩小搜索范围而存在的一种机制。想要查找表中的数据,有索引会精准查找,效率更高。
任何数据库中,主键会自动添加索引对象。
任何数据库中,任何一张表中一行记录在硬盘上存储都有一个硬盘的物理存储编号。
在MySQL中,索引是一个单独的对象,不同的存储引擎存储方式不同。

一张表中索引个数

一张表中一个字段可以添加一个索引,也可以多个字段联合起来添加索引。

mysql查询方式

  1. 全表查询
  2. 按照索引检索。

索引也要排序

索引排序和TreeSet一样。底层是自平衡二叉树。遵循左小右大的原则,采用中序的遍历方式。中序就是中左右的方式。

哪里添加索引

在MySQL中,主键上以及unique字段上都会自动添加索引。

  • 数据量庞大就添加索引,这个和硬件相关,硬件越牛逼,就不需要创建索引。
  • 该字段经常出现在where 后面,以条件的形式存在。
  • 该字段很少DML操作(insert,update,delerte),就要添加索引。
  • 子段的唯一性越高,添加索引查询效率越高。

创建(添加)索引(index)

--给单一字段添加索引
create index 索引名 on 表名(字段);

--给多个字段添加联合索引
create index 索引名 on 表名(字段1,字段2...);

删除索引

drop index 索引名 on 表名;
--这样就删除了一张表中某个索引

查看一个SQL语句是否使用索引

explain select * from t_user where name = 'zhangsan';
--explain 加上查询语句
--查询语句前面加上explain

索引失效

  1. 模糊查询以%开头。例如 select name from t_user where name like '%san';
  2. .or两边字段都有索引才会用索引,只要有一个没有索引,那么就不会优先使用索引查询。
  3. 很多时候可以让索引失效…请参考其他文章,视频等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值