操作系统

    1. 为什么有杀不掉的进程,什么原因?
    2. 进程的几种状态? D状态是什么原因造成的?Z状态是什么原因造成的?
    3. 如果进程HANG住,如何排查? pstack , gdb
    4. 增加数据库并发,数据库性能并没有线性提升,通常可能的原因有哪些?如何排查? strace, ptrace, perf, oprofile
    5. cgroup 可以做哪些隔离,
    6. Linux下面有哪些虚拟技术,他们的差异。
    7. 进程、线程间通信技术
    8. 进程、线程、协程

存储

例:

  1. 传统文件系统
  2. 卷管理
  3. INODE
  4. 分布式文件系统
  5. DIO与BUFFERIO
  6. 如何测试存储性能
  7. fadvise

网络

  1. 网络协议
  2. 如何排查网络问题
  3. 如何测试网络性能

数据库能力考查

  1. 协议

    • 消息格式
    • 数据库认证过程 ,如何做到认证过程中密码防窃取。
    • 流复制协议
    • 逻辑复制协议
  2. 启动过程

    • 数据库正常、异常启动过程
    • 解释数据库SQL处理过程
    • checkpoint 机制,调度算法
  3. 备份与恢复

    • REDO的数据结构
    • 一致性逻辑备份的原理
    • 一致性并行逻辑备份的原理
    • 逻辑备份的增量备份原理
    • 物理备份
    • 物理备份增量备份的原理
    • 逻辑恢复的原理,如何并行恢复,为什么需要收集统计信息
    • 如何加速逻辑恢复
    • 物理备份的PIRT原理
    • 物理增量备份的恢复原理
    • 物理恢复什么时候算是一致性位点
  4. 进程结构

    • 数据库有哪些进程,分别负责什么工作
    • PG后台进程的IPC机制
  5. 物理结构

    • 数据库的数据文件结构,PAGE结构,TUPLE结构,不同索引接口的索引内部结构
  6. 优化器

    • 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算法
  7. sql规则与触发器

    • RULE
      RULE在什么时候被触发,什么时候不被触发,RULE有什么用
    • 触发器,
      多个触发器时,触发的顺序,如何传递参数,如何传递结果
      before, after, row, statement的区别
      BATCH触发的好处,如何使用BATCH
    • 事件触发器
      哪些场景可以使用EVENT TRIGGER,他们的原理
  8. HOOK

    • 数据库有哪些HOOK
    • 哪些插件使用了HOOK
    • HOOK有什么用,如何使用
  9. 索引

    • 数据库有哪些索引接口(btree,hash,gin,gist,spgist,rum,brin,bloom,bitmap …)
    • 分别适应什么场景(从数据分布、读写请求角度);
    • 数据写入时的UNDO、表、索引操作流程;
    • 数据更新、删除时的UNDO、表、索引操作流程;
    • UK约束的操作流程。
    • 索引分裂。
    • BTREE的链表结构
    • HASH索引的内部结构
    • GIN索引的结构
    • 当表上面有很多索引时,会有什么问题,如何优化,内核层面有什么优化方法
    • 多个字段都可以走索引时,优化器如何做出选择,bitmap scan的原理
    • 多字段复合索引的字段顺序选择规则,解释清楚原理
  10. 约束

    • 有哪些约束(check, fk, uk, pk, not null, exclusive constraint)
    • 每一种约束作用
  11. 存储结构

    • 数据库有哪些索引接口:存储结构如何(meta, root, …);
    • FSM,VM结构,insert时如何找到适当的BLOCK,如何避免并发INSERT时插入同一个BLOCK带来的热点
    • HEAP的数据文件结构、BLOCK结构、TUPLE结构
    • 行存储与列存储,以及适应的场景,不适应的场景
    • 列存储有哪些内核层面的优化手段
    • 分布式数据库的数据倾斜原因,解法
    • 分布式数据库的查询倾斜原因,解法
    • Ora聚集表的存储结构,应用场景,缺点(不适合的场景)
  12. 类型

    • 数据库里面有哪些数据类型,分布适合什么业务场景
    • 不同数据类型有一些什么样的操作
    • 如何自定义类型
  13. sql语法

    • CRUD
    • CTE
    • 递归
    • SKIP LOCK
    • MERGE
    • CUBE
    • 行列变换
    • 异步消息
    • 事务,子事务
    • 2PC
    • 会话memcontext
    • SRF
    • 聚合
    • 窗口
    • 如何自定义聚合
    • 聚合计算原理
    • 并行聚合计算原理
    • 哪些操作可能rewrite table, 如何避免
  14. 如何排错

    • 如何定位错误源代码
    • 如何上报BUG
    • 有哪些可以寻求帮助的途径,网站
  15. 运行信息

    • 有哪些运行信息值得关注
    • 有哪些跟踪开关
    • 有哪些开发者开关
    • 源代码中有哪些编译开关可被设置,在哪里设置
    • 当前运行信息
    • 历史运行信息
    • TOP
    • 等待事件
    • 等待
    • 系统层PROFILE
    • 审计
  16. 问题诊断思路

  17. 垃圾回收

    • Ora,UNDO原理
    • PG,多版本原理
    • PG 新存储引擎zheap
    • 垃圾回收原理,相关参数
    • FREEZE的原理,相关参数
  18. 并行

    • 如何并行创建索引,原理。
    • 数据库支持哪些并行计算,介绍并行计算的原理,优化器对并行度的计算原理。
    • 如何控制并行度
    • join 并行的原理 (分别介绍 hash, mrege, nestloop)
    • 并行seq scan原理
    • 并行索引扫描原理
    • 并行排序的原理
    • 分区表并行JOIN,GROUP原理
    • 并行GROUP原理
    • 多阶段并行聚合的原理
  19. 排序

    • 排序算法
    • 非完全索引排序优化原理
  20. 锁和并发控制

    • 有一些什么锁
    • 锁的冲突
    • 事务隔离级别
    • MVCC机制
    • 2PC的过程
    • 垃圾回收与事务的关系
    • 为什么需要SNAPSHOT TOO OLD
    • UNDO机制
    • 什么情况下可能出现雪崩,如何防止雪崩
    • 分布式数据库的分布式死锁检测机制
    • 分布死锁数据库的快照,并发控制,隔离实现原理
    • 分布式数据库的全局一致性备份,恢复
  21. 流复制

    • 流复制的机制
    • 冲突检测机制
    • 如果备库开启FEED BACK对主库有什么伤害
    • 同步复制机制的堵塞机制
    • 如何降低延迟
    • 如何避免主备断开后需要重搭
    • 如何做到数据传输安全
    • 如何降低跨域数据传输延迟
  22. 应用场景

    • 递归查询的应用场景介绍
    • 分页的使用和优化
    • 如何优化任意字段组合查询
    • 如何优化 混合 普通类型、数组、多值列、JSON、空间、时间 等多种搜索过滤需求同时出现 的场景
    • 如何优化模糊查询、全文检索、相似查询
    • 如何优化kv, hstore, json, array, tsvector的搜索
    • 如何优化时序数据的搜索、插入 (schema less (以及为什么需要schema less)。 BRIN的内核优化,range 分段。 )
    • IOT场景有什么特点,数据库如何支撑。
    • 如何分析相似轨迹,时态数据查询如何优化。
    • TP、AP、流、图、时序、空间、搜索、系统架构设计。
      这几类场景,分别用到数据库的什么特性。
    • 空间数据
      空间数据有一些什么类型。矢量(点、线、面、点云、轨迹)、栅格。
      哪些场景会用到空间数据,怎么使用。
      空间数据如何构建索引,讲讲索引结构。
      时空数据,多维度查询,如何构建索引。
      大型空间数据的处理,搜索。
      数据路由问题。
      1到多的送餐路径规划。
      多到多的路径规划。
      开发类型、UDF、操作符、索引对接
  23. 架构

    • NOSQL, 缓存, 关系数据库, OLAP等产品, 如何结合使用
    • 为什么业务要限流开关
    • 如何设计限流
    • 数据生态包含哪些东西
  24. 监控与日常维护

    • 数据库哪些指标需要被监控,为什么,如何发现问题。
    • 长事务有什么问题?
      从垃圾回收的角度,解释垃圾回收原理,判定
      如果能提出改进思路更好
    • 延迟VACUUM有什么问题
    • 备库开启FEED BACK有什么问题
  25. 数据库可靠性

    • 如何保证数据的可靠性
    • 如何保证数据的一致性
    • 如何保证数据的原子性
    • 闪回
      闪回有哪些操作归类
      如何设计闪回,针对不同的操作,应该如何闪回
    • 容灾
      如何设计容灾系统。
    • 如何定义0丢失。
    • 如何设计0丢失的数据库集群。
    • 多副本
      解释一下多副本的原理
  26. 数据库可用性

    • 可用性与可靠性如何兼得
  27. 数据库安全

    • 安全系统设计
      安全分层,每一层如何设计
    • 审计系统设计
  28. 硬件评估与规划

    • 如何评估需要多少硬件
  29. 版本升级与数据迁移、同步

    • 小版本升级
    • 大版本升级
    • 同构数据迁移
    • 同构数据同步
    • 异构数据迁移
    • 异构数据同步
  30. 社区动态

    • 经常关注
  31. PG缺陷与优势

    • 缺陷
    • 优势
    • ROADMAP
    • 你有什么想法
  32. 思考

    • 为什么需要设计REDO,有没有想过持久化存储与内存性能齐平后的全新架构
    • wal writer 机制,如何设计并行wal writer
    • 运维DBA和开发DBA的区别?
    • 如何进行数据库选型
    • 市面上有哪几类数据产品,分别适应什么场景,设计上有什么软肋,不适应什么场景. db-engine
    • 紧急情况处理、
    • 问题诊断思路、
    • 逻辑复制需要注意什么东西?
    • 如何设计BENCHMARK。
    • 为什么喜欢搞数据库?
    • 经常上什么技术网站?
    • 遇到问题通常如何应对?
    • 工作经历,总结,反思,改变
  33. 发掘能力

    • 基本功

    • 经验

    • 上进心

    • 学习能力

    • 品格

    • 应变能力

    • 抗压能力

    • 稳定性

    • 理想

    • 格局、蓝图

    • 执行力

    • 心态

来源:(https://yq.aliyun.com/articles/647437?spm=a2c4e.11155435.0.0.182c6596bSkyP2)

本站文章,未经作者同意,请勿转载,如需转载,请邮件customer@csudata.com.
0 评论  
添加一条新评论