Mysql-索引的创建规则和使用场景以及组合索引的重点讲解!(入木三分,简洁明了)

前言:之前的项目中一直用Oracle数据库,所以对Oracle的细节理解方面要远胜于MySQL,这家公司用的MySQL,这几天在做项目优化,看到之前的表中有的没建索引,有的乱建索引(建了没用到),所以我又重新梳理了一遍,正好对MySQL索引研究了研究,特写下此文,供后来者参考。

这里我不会讲到索引的概念还有内部的详细原理,我会根据场景讲解什么时候要建索引,怎么建索引,怎么用索引,索引在什么查询语句中会失效等问题。

正文:

   1.    建立索引的目的是什么?就是为了快快快!

   2. 为什么使用索引查询会变快?广义来讲:就是用空间来换取时间,索引就是内存块。

MySql索引类型:

普通索引INDEX:加速查找(需自己创建)

唯一索引:
    -主键索引PRIMARY KEY:加速查找+约束(不为空、不能重复, 在创建表的时候自动生成的)
    -唯一索引UNIQUE:加速查找+约束(不能重复,需自己创建)

联合索引(组合索引):
    -PRIMARY KEY(id,name):联合主键索引
    -UNIQUE(id,name):联合唯一索引
    -INDEX(id,name):联合普通索引

#我们可以在创建上述索引的时候,为其指定索引类型,分两类
hash类型的索引:查询单条快,范围查询慢
btree类型的索引:b+树,层数越多,数据量指数级增长(我们就用它,因为innodb默认支持它)

#不同的存储引擎支持的索引类型也不一样
InnoDB 支持事务,支持行级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
MyISAM 不支持事务,支持表级别锁定,支持 B-tree、Full-text 等索引,不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值