操作系统
- 例
- 为什么有杀不掉的进程,什么原因?
- 进程的几种状态? D状态是什么原因造成的?Z状态是什么原因造成的?
- 如果进程HANG住,如何排查? pstack , gdb
- 增加数据库并发,数据库性能并没有线性提升,通常可能的原因有哪些?如何排查? strace, ptrace, perf, oprofile
- cgroup 可以做哪些隔离,
- Linux下面有哪些虚拟技术,他们的差异。
- 进程、线程间通信技术
- 进程、线程、协程
存储
例:
- 传统文件系统
- 卷管理
- INODE
- 分布式文件系统
- DIO与BUFFERIO
- 如何测试存储性能
- fadvise
网络
- 网络协议
- 如何排查网络问题
- 如何测试网络性能
数据库能力考查
协议
- 消息格式
- 数据库认证过程 ,如何做到认证过程中密码防窃取。
- 流复制协议
- 逻辑复制协议
启动过程
- 数据库正常、异常启动过程
- 解释数据库SQL处理过程
- checkpoint 机制,调度算法
备份与恢复
- REDO的数据结构
- 一致性逻辑备份的原理
- 一致性并行逻辑备份的原理
- 逻辑备份的增量备份原理
- 物理备份
- 物理备份增量备份的原理
- 逻辑恢复的原理,如何并行恢复,为什么需要收集统计信息
- 如何加速逻辑恢复
- 物理备份的PIRT原理
- 物理增量备份的恢复原理
- 物理恢复什么时候算是一致性位点
进程结构
- 数据库有哪些进程,分别负责什么工作
- PG后台进程的IPC机制
物理结构
- 数据库的数据文件结构,PAGE结构,TUPLE结构,不同索引接口的索引内部结构
优化器
- cbo与rbo的差异
- CBO的依据是?
- 数据库如何创建执行计划
plan tree的结构,node的输入输出,如何评估选择性,如何评估成本,影响成本评估的因素,影响选择性评估的因素 - SQL REWRITE
哪些情况下可以有SQL REWRITE,为什么需要sql rewrite - 统计信息收集调度
实例级参数,表级参数,如何调度,调度算法,worker,launcher唤醒算法等。 - 统计信息包含哪些要素
行数,页数,高频词,柱状图,相关性,唯一值比例,空值比例,平均长度,。。。要素有什么用? - 多值列的统计信息
- 多列组合统计信息
为什么需要多列统计,多列统计包含哪些信息(唯一值,线性相关性,选择性),这些要素对优化器有什么用(多列条件时提高选择性,为什么?) - 成本计算方法
各种NODE的成本计算方法,全表,索引扫,位图扫,索引ONLY扫,表达式,。。。。。。 - 成本计算 算子
至少介绍几种算子,以及作用,seq, random, cpu, ops, effective cache, parallel tupel, index setup….. - 数据选择性计算方法 (行数估算)
如何估算行数 - 数据库有哪些扫描方法,它们的扫描细节:
(seq, index, index only, bitmap index scan) - Ora:SKIP INDEX SCAN
- filter, recheck 的区别,为什么会出现
- 数据库有哪些JOIN方法,分别适合什么场景,有什么约束,优化器如何选择使用什么方法,影响优化器选择的因素有哪些,以及每一种的JOIN原理
- bloom filter在优化器中的应用有哪些
- 多表JOIN顺序的选择原理
- 遗传TSP算法
sql规则与触发器
- RULE
RULE在什么时候被触发,什么时候不被触发,RULE有什么用 - 触发器,
多个触发器时,触发的顺序,如何传递参数,如何传递结果
before, after, row, statement的区别
BATCH触发的好处,如何使用BATCH - 事件触发器
哪些场景可以使用EVENT TRIGGER,他们的原理
- RULE
HOOK
- 数据库有哪些HOOK
- 哪些插件使用了HOOK
- HOOK有什么用,如何使用
索引
- 数据库有哪些索引接口(btree,hash,gin,gist,spgist,rum,brin,bloom,bitmap …)
- 分别适应什么场景(从数据分布、读写请求角度);
- 数据写入时的UNDO、表、索引操作流程;
- 数据更新、删除时的UNDO、表、索引操作流程;
- UK约束的操作流程。
- 索引分裂。
- BTREE的链表结构
- HASH索引的内部结构
- GIN索引的结构
- 当表上面有很多索引时,会有什么问题,如何优化,内核层面有什么优化方法
- 多个字段都可以走索引时,优化器如何做出选择,bitmap scan的原理
- 多字段复合索引的字段顺序选择规则,解释清楚原理
约束
- 有哪些约束(check, fk, uk, pk, not null, exclusive constraint)
- 每一种约束作用
存储结构
- 数据库有哪些索引接口:存储结构如何(meta, root, …);
- FSM,VM结构,insert时如何找到适当的BLOCK,如何避免并发INSERT时插入同一个BLOCK带来的热点
- HEAP的数据文件结构、BLOCK结构、TUPLE结构
- 行存储与列存储,以及适应的场景,不适应的场景
- 列存储有哪些内核层面的优化手段
- 分布式数据库的数据倾斜原因,解法
- 分布式数据库的查询倾斜原因,解法
- Ora聚集表的存储结构,应用场景,缺点(不适合的场景)
类型
- 数据库里面有哪些数据类型,分布适合什么业务场景
- 不同数据类型有一些什么样的操作
- 如何自定义类型
sql语法
- CRUD
- CTE
- 递归
- SKIP LOCK
- MERGE
- CUBE
- 行列变换
- 异步消息
- 事务,子事务
- 2PC
- 会话memcontext
- SRF
- 聚合
- 窗口
- 如何自定义聚合
- 聚合计算原理
- 并行聚合计算原理
- 哪些操作可能rewrite table, 如何避免
如何排错
- 如何定位错误源代码
- 如何上报BUG
- 有哪些可以寻求帮助的途径,网站
运行信息
- 有哪些运行信息值得关注
- 有哪些跟踪开关
- 有哪些开发者开关
- 源代码中有哪些编译开关可被设置,在哪里设置
- 当前运行信息
- 历史运行信息
- TOP
- 等待事件
- 等待
- 系统层PROFILE
- 审计
问题诊断思路
垃圾回收
- Ora,UNDO原理
- PG,多版本原理
- PG 新存储引擎zheap
- 垃圾回收原理,相关参数
- FREEZE的原理,相关参数
并行
- 如何并行创建索引,原理。
- 数据库支持哪些并行计算,介绍并行计算的原理,优化器对并行度的计算原理。
- 如何控制并行度
- join 并行的原理 (分别介绍 hash, mrege, nestloop)
- 并行seq scan原理
- 并行索引扫描原理
- 并行排序的原理
- 分区表并行JOIN,GROUP原理
- 并行GROUP原理
- 多阶段并行聚合的原理
排序
- 排序算法
- 非完全索引排序优化原理
锁和并发控制
- 有一些什么锁
- 锁的冲突
- 事务隔离级别
- MVCC机制
- 2PC的过程
- 垃圾回收与事务的关系
- 为什么需要SNAPSHOT TOO OLD
- UNDO机制
- 什么情况下可能出现雪崩,如何防止雪崩
- 分布式数据库的分布式死锁检测机制
- 分布死锁数据库的快照,并发控制,隔离实现原理
- 分布式数据库的全局一致性备份,恢复
流复制
- 流复制的机制
- 冲突检测机制
- 如果备库开启FEED BACK对主库有什么伤害
- 同步复制机制的堵塞机制
- 如何降低延迟
- 如何避免主备断开后需要重搭
- 如何做到数据传输安全
- 如何降低跨域数据传输延迟
应用场景
- 递归查询的应用场景介绍
- 分页的使用和优化
- 如何优化任意字段组合查询
- 如何优化 混合 普通类型、数组、多值列、JSON、空间、时间 等多种搜索过滤需求同时出现 的场景
- 如何优化模糊查询、全文检索、相似查询
- 如何优化kv, hstore, json, array, tsvector的搜索
- 如何优化时序数据的搜索、插入 (schema less (以及为什么需要schema less)。 BRIN的内核优化,range 分段。 )
- IOT场景有什么特点,数据库如何支撑。
- 如何分析相似轨迹,时态数据查询如何优化。
- TP、AP、流、图、时序、空间、搜索、系统架构设计。
这几类场景,分别用到数据库的什么特性。 - 空间数据
空间数据有一些什么类型。矢量(点、线、面、点云、轨迹)、栅格。
哪些场景会用到空间数据,怎么使用。
空间数据如何构建索引,讲讲索引结构。
时空数据,多维度查询,如何构建索引。
大型空间数据的处理,搜索。
数据路由问题。
1到多的送餐路径规划。
多到多的路径规划。
开发类型、UDF、操作符、索引对接
架构
- NOSQL, 缓存, 关系数据库, OLAP等产品, 如何结合使用
- 为什么业务要限流开关
- 如何设计限流
- 数据生态包含哪些东西
监控与日常维护
- 数据库哪些指标需要被监控,为什么,如何发现问题。
- 长事务有什么问题?
从垃圾回收的角度,解释垃圾回收原理,判定
如果能提出改进思路更好 - 延迟VACUUM有什么问题
- 备库开启FEED BACK有什么问题
数据库可靠性
- 如何保证数据的可靠性
- 如何保证数据的一致性
- 如何保证数据的原子性
- 闪回
闪回有哪些操作归类
如何设计闪回,针对不同的操作,应该如何闪回 - 容灾
如何设计容灾系统。 - 如何定义0丢失。
- 如何设计0丢失的数据库集群。
- 多副本
解释一下多副本的原理
数据库可用性
- 可用性与可靠性如何兼得
数据库安全
- 安全系统设计
安全分层,每一层如何设计 - 审计系统设计
- 安全系统设计
硬件评估与规划
- 如何评估需要多少硬件
版本升级与数据迁移、同步
- 小版本升级
- 大版本升级
- 同构数据迁移
- 同构数据同步
- 异构数据迁移
- 异构数据同步
社区动态
- 经常关注
PG缺陷与优势
- 缺陷
- 优势
- ROADMAP
- 你有什么想法
思考
- 为什么需要设计REDO,有没有想过持久化存储与内存性能齐平后的全新架构
- wal writer 机制,如何设计并行wal writer
- 运维DBA和开发DBA的区别?
- 如何进行数据库选型
- 市面上有哪几类数据产品,分别适应什么场景,设计上有什么软肋,不适应什么场景. db-engine
- 紧急情况处理、
- 问题诊断思路、
- 逻辑复制需要注意什么东西?
- 如何设计BENCHMARK。
- 为什么喜欢搞数据库?
- 经常上什么技术网站?
- 遇到问题通常如何应对?
- 工作经历,总结,反思,改变
发掘能力
基本功
经验
上进心
学习能力
品格
应变能力
抗压能力
稳定性
理想
格局、蓝图
执行力
心态
…
来源:(https://yq.aliyun.com/articles/647437?spm=a2c4e.11155435.0.0.182c6596bSkyP2)
本站文章,未经作者同意,请勿转载,如需转载,请邮件customer@csudata.com.
0 评论
添加一条新评论