数据库相关面试题精选

目前正处于银四的招聘季,我把我面试过的数据库相关知识做了一个模拟合集,有兴趣的可以看看

(一)小何面试官:

好的,我们公司对数据库方面比较重视,可以说下你都使用过什么数据库吗?

小M

嗯,之前项目中使用最多的是MySQL数据库关系型,对Redis、MongoDB等非关系型数据库也有了解

(二)小何面试官:
好的,那你先谈谈你最熟悉的MySQL数据库?

小M:

MySQL数据库是一个免费开源的关系型数据库

无论数据还是索引都存放在硬盘中,到要使用的时候才交换到内存中,能够处理远超过内存总量的数据,在不同的引擎上有不同 的存储方式

查询语句是使用传统的 SQL 语句,拥有较为成熟的体系,成熟度很高。但是如果有海量数据时速度会变慢

(三)小何面试官:
你对MySQL的引擎及存储方式了解多少呢?

小M

MySQL中的引擎有:MyISAM、InnoDB、MEMORY、MERGE四种

1、MyISAM存储引擎:不支持事务、也不支持外键,优势是访问速度快

2、InnoDB存储引擎:该存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM引擎,写的处理效率会差一些,并且会占用更多的磁盘空间以保留数据和索引

3、MEMORY存储引擎:Memory存储引擎使用存在于内存中的内容来创建表。每个memory表只实际对应一个磁盘文件,格式是.frm。memory类型的表访问非常的快,因为它的数据是放在内存中的,并且默认使用HASH索引,但是一旦服务关闭,表中的数据就会丢失掉

4、MERGE存储引擎:Merge存储引擎是一组MyISAM表的组合,这些MyISAM表必须结构完全相同,merge表本身并没有数据,对merge类型的表可以进行查询,更新,删除操作,这些操作实际上是对内部的MyISAM表进行的

(四)小何面试官:

嗯嗯,挺好的,你再说说MongoDB数据库你了解有多少?

小M

MongoDB是一个基于分布式文件存储的开源数据库系统

对数据的操作大部分都在内存中,在高负载的情况下,添加更多的节点,可以保证服务器性能,为 WEB 应用提供可扩展的高性能数据存储解决方案

文档类似于 JSON 对象,存储方式是虚拟内存+持久化,以 BSON 结构(二进制)进行存储,对海量数据存储有着很明显的优势

但是不支持事务操作,以及没有成熟的维护工具维护成本高

(五)小何面试官:

好,那你再说说Redis数据库?

小M

Redis是一个不折不扣的内存数据库,所有数据都是放在内存中的,持久化是使用 RDB 方式或者 AOF方式

(六)小何面试官

说了这些基本概念了,你再给说说MongoDB与MySQL的对比

小M

1、MongoDB稳定性没有MySQL好

2、MongoDB占用空间大,因为它属于典型空间换时间原则的类型

3、MongoDB对事务支持比较弱

4、MongoDB适合数据格式不明确的数据比MySQL灵活

5、MongoDB自带分布式文件系统,增加一个服务器性能几何倍数

6、MongoDB可以存储海量数据而MySQL不行

(七)小何面试官

MongoDB和Redis的区别呢?

小M

1、Redis 数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的 LRU 算法删除数据

2、MongoDB 数据存在内存,由 linux系统 mmap 实现,当内存不够时,只将热点数据放入内存,其他数据存在磁盘

3、Redis 支持的数据结构丰富,包括hash、set、list、 string等

4、MongoDB 数据结构比较单一,但是支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富

5、二者性能都比较高,应该说都不会是瓶颈,都支持持久化

(八)小何面试官:

那MySQL和Redis的比较呢?

小M

MySQL 是持久化存储,存放在磁盘里面。

Redis是缓存数据库,并且都是驻留在内存中运行的,这大大提升了高数据量web访问的访问速度

(九)小河面试官:

你有没有观察过三者的执行速度呢?

小M

我之前大概了解过,当物理内存够用的时候

Redis>MongoDB>MySQL

很多人在开始学习时,总会发愁找不到合适的学习资料,在这里,我免费共享学习资料,需要的关注私聊我,还有更多学习资料,统统免费送

加我微信,关注公众号,私我免费领取
微信公众号搜索:烧脑程序杂谈

私我微信免费领取在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值