面经(二)深圳大管加电面记录

本文详细记录了一次深圳大管加电面的面试经历,涵盖MySQL存储引擎对比、事务特性、数据结构、并发控制等多个技术要点。面试中探讨了InnoDB与MyISAM的区别,如事务支持、锁粒度等,并强调了选择存储引擎的依据。此外,还讨论了Java面试中常见的JVM内存划分、线程与进程、字符串类对比以及算法时间复杂度等知识点,对于准备面试的开发者具有参考价值。
摘要由CSDN通过智能技术生成

前言

本章讲述我在深圳大管加电面被问到的一些题目

一、题目

1.mysql的存储引擎有哪些?

InnoDB、MyISAM、MEMORY、MERGE、EXAMPLE…

  • InnoDB:这是MySQL 5.5或更高版本的默认存储引擎。它提供了事务安全(ACID兼容)表,支持外键引用完整性约束。它支持提交、回滚和紧急恢复功能来保护数据。它还支持行级锁定。当在多用户环境中使用时,它的“一致非锁定读取”提高了性能。它将数据存储在集群索引中,从而减少了基于主键的查询的I/O。

  • MyISAM:该存储引擎管理非事务性表,提供高速存储和检索,支持全文搜索。

  • MEMORY:提供内存中的表,以前称为堆。它在RAM中处理所有数据,以便比在磁盘上存储数据更快地访问。用于快速查找引用和其他相同的数据。

  • MERGE:将多个类似的MyISAM表分组为一个表,可以处理非事务性表,默认情况下包括这些表。

  • EXAMPLE:你可以使用此引擎创建表,但不能存储或获取数据。这样做的目的是教开发人员如何编写新的存储引擎。

  • ARCHIVE:用于存储大量数据,不支持索引。

  • CSV:在文本文件中以逗号分隔值格式存储数据。

  • BLACKHOLE:受要存储的数据,但始终返回空。

  • FEDERATED:将数据存储在远程数据库中。

Mysql 中 MyISAM 和 InnoDB 的区别有哪些?

1.InnoDB 支持事务,MyISAM 不支持事务。这是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一;

2.InnoDB 支持外键,而 MyISAM 不支持。对一个包含外键的 InnoDB 表转为 MYISAM 会失败;

3.InnoDB 是聚集索引,MyISAM 是非聚集索引。聚簇索引的文件存放在主键索引的叶子节点上,因此 InnoDB 必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而 MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。

4.InnoDB 不保存表的具体行数,执行 select count(*) from table 时需要全表扫描。而MyISAM 用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快;

5.InnoDB 最小的锁粒度是行锁,MyISAM 最小的锁粒度是表锁。一个更新语句会锁住整张表,导致其他查询和更新都会被阻塞,因此并发访问受限。这也是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一;

  • 如何选择:

1.是否要支持事务,如果要请选择 InnoDB,如果不需要可以考虑 MyISAM;
2.如果表中绝大多数都只是读查询,可以考虑 MyISAM,如果既有读写也挺频繁,请使用InnoDB。
3.系统奔溃后,MyISAM恢复起来更困难,能否接受,不能接受就选 InnoDB;
4.MySQL5.5版本开始Innodb已经成为Mysql的默认引擎(之前是MyISAM),说明其优势是有目共睹的。如果你不知道用什么存储引擎,那就用InnoDB,至少不会差。

2.事物的特性有哪些?

事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )。这四个特性简称为 ACID 特性。

  • 1.原子性 :事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做

  • 2.一致性 :事 务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统 运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是 不一致的状态。

  • 3.隔离性 :一个事务的执行不能其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

  • 4.持续性 :也称永久性,指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的。接下来的其它操作或故障不应该对其执行结果有任何影响。

3.int几个字节

4个字节32位

4.hashMap的底层数据结构
5.Arraylist和li
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M1kasal

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值