中国大数据教育领跑者

IT培训上市机构

您现在的位置:首页 > Java培训 > java求职技巧>Java开发面试知识点总结之数据库知识点

Java开发面试知识点总结之数据库知识点

2018-01-12 18:29:42 作者:魔据大数据学院

Java开发者在面试的时候都可能遇到哪些知识点呢?相信这是很多参加Java技术培训Java初学者都想要知道的问题,今天魔据教育的Java技术培训班就为大家分享一篇Java开发面试知识点总结。今天先给大家分享一下基础知识面试中的数据库知识点

既然是后端开发,那么与数据库相关的知识点也是必不可少的。

1MySQL MongoDB 的区别有哪些?如何选择?

2MongoDB 的优缺点有哪些?

ps 本人对这一块不是很熟悉,就不附上参考答案了,请各位小伙伴自行学习哈~

Java开发面试知识点总结之数据库知识点

Java开发面试知识点总结之数据库知识点

3)听说过事务吗?(必考)

答:作为单个逻辑工作单元执行的一系列操作,满足四大特性:

原子性(Atomicity):事务作为一个整体被执行 ,要么全部执行,要么全部不执行;

一致性(Consistency):保证数据库状态从一个一致状态转变为另一个一致状态;

隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行;

持久性(Durability):一个事务一旦提交,对数据库的修改应该永久保存。

4)事务的并发问题有哪几种?

答:丢失更新、脏读、不可重复读以及幻读。

5)数据库中的锁有哪几种?
答:独占锁、排他锁以及更新锁。

6)事务的隔离级别有哪几种?

答:读未提交、读已提交、可重复读和序列化。

扩展问题:MySQL 事务默认隔离级别是哪个?

答:可重复读。

解析:关于问题(4)(5)(6)的详细解答,请参阅我的博客:数据库并发机制和事务的隔离级别详解

ps,关于数据库事务方面的深层次考察还有分布式事务即两段提交和三段提交等,限于本人水平,请各位自行学习)

7)数据库的索引有什么作用?(必考) 底层数据结构是什么,为什么使用这种数据结构?

答:

索引 是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息;

底层数据结构是 B+ 树;

使用 B+ 树的原因:查找速度快、效率高,在查找的过程中,每次都能抛弃掉一部分节点,减少遍历个数。( 此时,你应该在白纸上画出什么是 B+ 树 )

扩展问题:聚簇索引和非聚簇索引的区别?

8MyISAM InnoDB 的区别有哪些?

答:

MyISAM 不支持事务,InnoDB 是事务类型的存储引擎;

MyISAM 只支持表级锁,BDB 支持页级锁和表级锁,默认为页级锁;而 InnoDB 支持行级锁和表级锁,默认为行级锁;

MyISAM 引擎不支持外键,InnoDB 支持外键;

MyISAM 引擎的表在大量高并发的读写下会经常出现表损坏的情况;

对于 count( ) 查询来说 MyISAM 更有优势;

InnoDB 是为处理巨大数据量时的最大性能设计,它的 CPU 效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的;

MyISAM 支持全文索引(FULLTEXT),InnoDB 不支持;

MyISAM 引擎的表的查询、更新、插入的效率要比 InnoDB 高。

最主要的区别是:MyISAM 表不支持事务、不支持行级锁、不支持外键。 InnoDB 表支持事务、支持行级锁、支持外键。(可直接回答这个)

9)数据库中 Wheregroup byhaving 关键字:

答: 关键字作用:

where 子句用来筛选 from 子句中指定的操作所产生的的行;

group by 子句用来分组 where 子句的输出;

having 子句用来从分组的结果中筛选行;

having where 的区别:

语法类似,where 搜索条件在进行分组操作之前应用;having 搜索条件在进行分组操作之后应用;

having 可以包含聚合函数 sumavgmax 等;

having 子句限制的是组,而不是行。

当同时含有 where 子句、group by 子句 、having 子句及聚集函数时,执行顺序如下:

执行 where 子句查找符合条件的数据;

使用 group by 子句对数据进行分组;对 group by 子句形成的组运行聚集函数计算每一组的值;最后用 having 子句去掉不符合条件的组。

10)还有一些问题,如 MySQL SQL Server 用法上的区别、limit 关键字的使用等问题。

小结:数据库方面还是事务机制、隔离级别比较重要,当然了数据库索引是必考的问题。偶尔也会给你几个表,让你现场写 SQL 语句,主要考察 group by having 等关键字。

 

相关推荐
[免责声明]本文来源于网络转载,仅供学习交流使用,不构成商业目的。版权归原作者所有,如涉及作品内容、版权和其它问题请在30日内与本网联系,我们将在第一时进行处理

值班手机:18501996998

咨询QQ: 226594285 / 428683440

校区地址:北京市海淀区中关村科技园首农蓝海中心C座-7层

全国咨询热线:400-690-5006

点击关注:

魔据教育官方微博

魔据官方微信