索引---mysql

# 索引
# 含义:相当于一本书的目录,让查询更快

# 主键索引
# 注意:主键索引就是主键约束
# 添加主键索引
CREATE TABLE student(
    id INT(32) PRIMARY KEY auto_increment,
    name VARCHAR(32),
    sex VARCHAR(32),
    age INT(3),
    salary FLOAT(8,2),
    course VARCHAR(32)
)
# 删除主键索引
ALTER TABLE student DROP PRIMARY KEY;


# 唯一索引
# 注意:唯一索引就是唯一约束
# 添加唯一索引
ALTER TABLE student ADD UNIQUE(phone);
# 修改唯一索引
ALTER TABLE student MODIFY `name` VARCHAR(32) UNIQUE;
# 删除唯一索引
ALTER TABLE student DROP INDEX `name`;


# 普通索引
# 注意:普通索引不是约束,单单让当前字段查询快而已(没有做任何的限制 -- 字段上的数据可以重复也可以为null)
# 添加普通索引
ALTER TABLE student ADD INDEX(course);
# 删除普通索引
DROP INDEX course on student;


# 全文索引
# 注意:MySQL5.5以上版本才有的索引,在工作中也不使用该索引

# 索引的数据结构 --- B+Tree

# 索引的优缺点:
# 优点:查询快
# 缺点:更新数据时,索引文件也会发生改变,所以一张表中的索引不宜过多
# 解决缺点:批量更新时,先删除索引,更新完毕后再添加索引

# 经验:
#            1.表中唯一标识的字段(不允许重复并且不允许为null),就可以设置为主键索引
#            2.在业务经常查询的条件需要加上索引(根据数据选择唯一索引或普通索引)
#            3.查询条件竟可能使用主键字段 SELECT * FROM student WHERE id=xxx;

索引的分类:聚簇索引和非聚簇索引---区别

索引的分类:聚簇索引和非聚簇索引
#            聚簇索引 - 主键索引:叶子节点上就是数据行
#         非聚簇索引 - 唯一/普通/全文索引:叶子节点上是主键地址


# 索引失效的情况:
#            1.使用模糊查询时
#            2.索引如果是联合索引,第一个字段失效时,不会找第二个字段
#            3.查询时,MySQL会有查询算法,判断是走顺序查找更快,还是索引索引更快,如果是顺序查找更快就不走索引这条路

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值