最新MySQL索引-知识点总结(1),海康java面试几轮

最后总结

搞定算法,面试字节再不怕,有需要文章中分享的这些二叉树、链表、字符串、栈和队列等等各大面试高频知识点及解析

最后再分享一份终极手撕架构的大礼包(学习笔记):分布式+微服务+开源框架+性能优化

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

```

MyISAM与InnoDB 的区别: link.

2.索引的使用


  • 为什么要使用索引

    数据库中数据存储在磁盘,磁盘的顺序查询速度是很慢的,所有的顺序查找指的是读取磁盘中的数据⼀ 条⼀条的进⾏查找。

    索引就是为了避免顺序查询,提供查询速度的。

  • 索引的优势

    实际的一个功能性数据库中,它所存放的数据信息是十分的多的,数据量很大,会占用更多的存储空间,而一般来说这些数据是被存储在磁盘中的,而不会是存储在内存里。但是索引不一样,它所存储的只是每一个数据信息对应的存储空间的地址,如果我们使用索引存放了地址,查询时将索引加载到内存中,查询数据时就可以快速的从内存里去扫描索引,找到数据信息存放的内存地址,就可以精准快速的拿到想要的数据了。

  • 索引 VS 书的目录

    从宏观上来讲,我们可以认为索引就是书的目录。

    但从微观上来讲,索引不等于书的目录。因为一本书的目录只有一个,而一张表可以有多个索引,而每个索引都相当于一个目录。

  • 索引分类

    索引的分类有以下⼏种:

    主键索引聚簇索引):⼀种特殊的唯⼀索引,不允许有空值,⼀般是在建表的时候同时创建主键 索引(通过 primary key)。

    非主键索引⼆级索引/非聚簇索引):除主键索引之外的其他索引。

    唯⼀索引:不能重复的索引。 普通索引:可以重复也可以为 NULL 的索引。

    联合索引:使⽤多个字段联合组成的索引。

注意:创建主键约束(PRIMARY KEY)、唯⼀约束(UNIQUE)、外键约束(FOREIGN KEY)时, 会⾃动创建对应列的索引。

  • 查看索引

 show index from 表名;



  • .创建索引

假设,我们有⼀个主键列为 ID 的表,表中有字段 k,并且在 k 上有索引。这个表的建表语句是:


create table T(

   id int primary key,

   k int not null,

   name varchar(16),

   index (k) )

   engine=InnoDB;



  1. 创建普通索引

create index 索引名 on 表名(字段名[,字段名2...]);



  1. 创建唯一索引

create unique index 索引名 on 表名(字段名); 1



  1. 添加主键索引

alter table table_name add primary key (column);



  1. 删除索引

drop index 索引名 on 表名;



  1. 索引 VS 约束

    ① 创建索引的时候会自动创建约束,并且在创建约束的时候也会自动创建索引

    ② 索引和约束的不同是业务定义,约束是用来规范数据的正确性,而索引是用来提升数据库的程序性能的

    ③ 大多数情况可以理解为:索引和约束是共生关系(反例:非空约束)

  2. 创建索引注意事项

    ① 在创建索引的时候会创建对应的约束,而删除索引的时候也会删除对应的约束

    ② 唯一索引在创建时,要确保原先的数据符合唯一约束,这样才能成功的创建唯一约束,否则会创建失败

  • 注意事项
  1. 创建索引要考虑的因素

    ① 数据量是否足够大

    ② 创建索引的列是否经常使用到查询条件

原因:因为索引的产生是为了提高表的查询效率,索引的底层使用的是 B+ 树,在表的频繁添加和删除的时候,都是要对索引进行维护的,要重新整理树的结构。

Java核心架构进阶知识点

面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的

image

image

image

内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

行脑补

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值