面试题目总结
1. Java-算法
1.1 & 运算符
1 2 3 4 5 6 7 8 9 10 11 12
| 1.
public ModTest{ public static void main(String[] args){ System.out.println(45 & 11); System.out.println(45 & 7); } }
|
2. mysql底层索引存储原理
3. 数据库-事务
3.1 事务的四大特性
- 原子性
- 一致性
- 隔离性
- 持久性
3.2 并发事务问题
多个并发事务在执行的过程当中出现的问题
- 脏读
- 不可重复读
- 幻读
3.2.1 如何解决
通过事务不同的隔离级别进行解决(级别越高数据越安全、但效率越低)
4. 数据库-存储引擎
4.1 mysql的四大体系结构
4.2 mysql的存储引擎
1 2
| 1. 存储引擎是基于表的,一个数据库下的不同表,可以有不同的存储引擎 2. mysql 5.5 之后,表的默认存储引擎是InnoDB
|
- 如何使用
4.3 存储引擎的主要特点
4. 4 面试题:InnoDB和MyISAM区别
问InnoDB和MyISAM的区别?(两个存储引擎的区别)
1 2
| InnoDB:支持事务、行锁、支持外键 MyISAM: 表锁,不支持事务、不支持外键
|
4.5 存储引擎如何选择
1
| 根据系统应用特点,选择合适的存储引擎,一般用第一个,两外两个现在一般被MongoDB、redis代替
|
4.6 总结
5. 数据库-索引
5.1 索引概述
优缺点
5.2 索引结构-B+
树
- 二叉树(二叉搜索树)和红黑树(自平衡的二叉搜索树)
- B树(多路平衡搜索树)
- mysql中优化后的B+树
5.3 索引结构-Hash
索引
5.4 面试题:存储引擎为啥B+树
5.5 索引分类
- 举例使用-回表查询
5.6 索引的使用
1. 创建索引
1 2 3
| create index 索引名称 on 表名(需要索引的字段) CREATE index idx_user_email ON `user`(email)
|
2. 查看索引
1 2 3
| show index from 表名; show index from user;
|
3. 删除索引
1 2 3
| drop index 需要删除的索引名称 on 该索引对应的表名; drop index idx_user_email on user;
|
4. 索引小案例
5.7 Sql性能分析
1 2 3 4 5 6
| show global status like 'Com_______';
|
explain的相关使用和优化点
5.8 索引使用的特殊情况
索引失效的几种情况:
1. 面试真题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| 5月28日-大数据开发 一、java基础部分 1.自我介绍 2.Java中==和equles的区别,方法重写、重载的区别 3.面型对象的三大特征、多态的体现 4.|和||的区别,使用 5.Java中的垃圾回收机制 6. 二、大数据部分(基础部分) 1.Hadoop架构、hdfs的上传原理、mr的执行原理 2.kafka原理,flume的三大核心组件,zookeeper的选举机制(半数原则) 3.hbase ---不会这个 4.spark和mr区别 5.hivesql的作用,以及他的执行过程 ( 解析器(SQLParser):将 SQL 字符串转换成抽象语法树(AST) 语义分析(Semantic Analyzer):将 AST 进一步划分为 QeuryBlock 逻辑计划生成器(Logical Plan Gen):将语法树生成逻辑计划 逻辑优化器(Logical Optimizer):对逻辑计划进行优化 物理计划生成器(Physical Plan Gen):根据优化后的逻辑计划生成物理计划 物理优化器(Physical Optimizer):对物理计划进行优化 执行器(Execution):执行该计划,得到查询结果并返回给客户端 ) 6.数据倾斜原因,如何解决 三、数据库相关(基础部分) 1.sql优化的方式有哪些? 2.事务是什么 3.事务的四大特性 4. 四、项目相关 1. 讲一下你写的你认为最好的项目,并且遇到的问题,和如何解决 结尾: 2. 有什么想问的。
|