0
点赞
收藏
分享

微信扫一扫

Java八股文总结(二)

我是小小懒 2023-07-24 阅读 56

Java八股文总结(续)

接上篇笔记:Jhttps://blog.csdn.net/weixin_44780078/article/details/130192373

文章目录

六、MySql 相关

1. InnoDB 与 MyISAM 的区别?

InnoDBMyISAM
事务支持不支持
主键一定要有不一定要有
外键支持不支持
聚簇索引是(数据文件和索引文件是绑定在一起的)不是(相反数据文件和索引文件是分开的)
全文索引不支持(v5.7之后也支持)支持
行数不存储存储
行锁支持不支持

2. 为什么 InnoDB 存储引擎表必须有主键,并且推荐使用整型的自增方式?

对于主键:

  • 主键可以确保表中的每一行数据都具有唯一标识,确保数据完整性。没有主键的表可能会出现重复数据或数据无法明确定位的情况。
  • InnoDB 存储引擎采用 B+ 树作为索引结构,在数据访问和查询过程中,可以通过主键高效的定位数据。如果没有主键,InnoDB 会选择一个唯一非空索引作为隐藏主键,但这样可能导致索引性能下降。
  • 方便与其他表进行外键关联。

对于整型的自增方式:

  • 整型数据类型在存储和比较上相对于其他数据类型占用空间小,更加高效,索引速度快。自增方式可以保证每次插入新记录时,主键值都是递增的,这样可以减少索引维护的开销。
  • 自增的主键具有连续性和可读性,方便人们查看和理解;

3. explain 查看 sql 执行计划

explain 中 type:all 表示全表通查。

explain select * from fangyi_user.user

在这里插入图片描述


explain 中 type:index 表示全表扫描索引文件(但是只遍历索引树)。

explain select user_id from fangyi_user.user  // user_id是主键

在这里插入图片描述


explain 中 type:range 表示检索给定范围的行,使用一个索引来选择行。(不需要优化了)

explain select * from fangyi_user.user WHERE user_id > 1

在这里插入图片描述


explain 中 type:const 表示最多有一个匹配行,读取1次,速度非常快。(不需要优化了)

explain select * from fangyi_user.user WHERE user_id = 5661

在这里插入图片描述


explain type 级别:system > const > eq_ref > ref > range > index > all.
SQL 优化目标:至少要达到 range 级别,要求是 ref 级别,如果是 const 最好。






每天都在更新中。。。

举报

相关推荐

八股文总结

Java八股文

java八股文

JAVA八股文

八股文自我总结

Java八股文(Docker)

Java面试八股文

【八股文】Java基础

Java 八股文 - MySQL

0 条评论