2020校招DBA岗位-2019-9-16下午四点电话面试
1.自我介绍
2.为什么要应聘DBA这个职位
我说通过在实际的项目中发现自己对数据比较敏感,能够独立发现并解决数据库中存在的一些问题,所以就打算应聘这个岗位。
3.都会使用哪些数据库,最擅长哪种
我近一年多以来使用最多的是postgres,Oracle使用过半年,my sql, SQL server 使能够自行搭建,一般使用不存在问题。
4.你使用的数据库的数据量有多大?
数据库主表记录有400万+,实体文件达700TB, 还在持续增加
5.未来更喜欢数据库开发还是数据库管理员?
我说,我想先通过数据库开发学习来充实自己的数据库方面的未知的知识(就是可以先从事数据库开发岗),在掌握后再从事数据库管理员这个岗位。
6.你在项目中具体做数据库的哪方面的事情。(自己发挥)
我平时负责线下数据的相关数据库表的模型设计,数据维护,数据库中数据的是否正常等等。
7.数据库三范式的定义,在数据库表设计的时候是否必须遵循?
(1)
第一范式:确保每列保持原子性,数据库表中每个字段都是不可分解的原子值;
第二范式:在第一范式的基础上更进一层,确保表中每列都与主键相关,不能只与主键的每一部分相关;(就是说一张表只能保存一种数据,不能把多种数据保存在同一张表中)
第三范式: 确保每列都与主键直接相关,而不是间接相关。
(2)我的答案是数据库设计时要以业务需求为主导,具体根据实际情况有时候可以不遵守三大范式。
8.数据库的锁(粒度)
通常有排它锁和共享锁。
数据库中的锁目的是为了解决数据库表的高并发问题
Pg数据库的锁的粒度是行级别;
自己总结Mysql有三种锁:行级别,页级别,表级别
Oracle数据库的锁:表级索、行级锁,事务锁
9. Linux常见命令(例如:查看磁盘容量、查看内存、查看cpu):
查看磁盘使用情况:df
查看内存: free
查看CPU: cat
10.简要你了解的Oracle数据库的结构,pgadmin结构(我自己擅长)-以下答案为自己找的
Oracle数据库体系架构主要有俩部分组成:数据库实例和数据库文件;(构成数据库管理系统)数据块是Oracle最小的存储单位
(1)数据库实例是数据库服务器的内存及相关处理程序,是Oracle的心脏。
(2)主要包括三种文件:数据文件、控制文件、重做日志文件。
Pg体系架构:
采用客户机/服务器(C/S)模式提供服务,一个postgresql会话由下列相关进程(程序)组成:
一个服务器端进程;客户端应用程序
11. pg数据库的优点有哪些?
(1)开源,Oracle是商业级数据库,不开放,而Mysql中最重要的InnoDB引擎也被Oracle收购,所以Mysql未来可能会商业化;
(2)与postgres配合的开源软件比较多,有很多分布式集群软件,很容易做读写分离、负载均衡、数据水平拆分等,Mysql不具备;
(3)postgres源代码清晰易读,比Mysql强;
(4)postgresql在复杂sql、存储过程、触发器、索引等比mysql强多了,同时postgres是多进程的,而mysql是多线程的,在高并发时mysql充分利用cpu
12.索引的类型有哪些(pg数据库索引的类型)
Pg中:B-tree(适合大多数,处理按顺序存储的数据) , Hash (只能处理等于比较),GiST(是一种架构,依赖于多种索引策略), GIN(反转索引,可以处理数组,与GiST类似,支持用户定义索引策略),BRIN(索引特别小)
Oracle中: b-tree、位图索引(bitmap index)、基于函数的索引、分区索引和全局索引、反向索引(REVERSE)、Hash
13.比如数据库中有100万条数据,需要删掉其中60万条,怎么快速删除(已经建好索引这些)。
我的答案是,在不影响正常使用的时间段(休闲段),采用多个节点进行分布式并行删除。
14.项目中的一些事
15.问我看有什么需要问的,我问了俩个(一共电话面试时长34分钟)
#校招##面经##秋招#