資料庫相關崗位面試準備建議
標籤
PostgreSQL , 資料庫 , 面試準備
背景
本文同時適合用人方、闖關應聘方。
注意通過面試問題,發掘小夥伴的極限。找準小夥伴層級定位。
類目
至少應該包含如下,每一項應該包含範圍,考察目的,評判標準,不同等級的差異化,對應的深度、廣度。
外圍能力考察
作業系統
比如
- 為什麼有殺不掉的程式,什麼原因?
- 程式的幾種狀態? D狀態是什麼原因造成的?Z狀態是什麼原因造成的?
- 如果程式HANG住,如何排查? pstack , gdb
- 增加資料庫併發,資料庫效能並沒有線性提升,通常可能的原因有哪些?如何排查? strace, ptrace, perf, oprofile
- cgroup 可以做哪些隔離,
- Linux下面有哪些虛擬技術,他們的差異。
- 程式、執行緒間通訊技術
- 程式、執行緒、協程。
儲存
比如
- 傳統檔案系統
- 卷管理
- INODE
- 分散式檔案系統
- DIO與BUFFERIO
- 如何測試儲存效能
- fadvise
網路
比如
- 網路協議
- 如何排查網路問題
- 如何測試網路效能
資料庫能力考察
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 三態
- 函式三態知識
- 三態與MVCC的關係
- 三態在PS中的異同
- 優化器如何考慮三態
- 索引掃描與三態
- 表示式索引與三態
10 索引
- 資料庫有哪些索引介面(btree,hash,gin,gist,spgist,rum,brin,bloom,bitmap …)
- 分別適應什麼場景(從資料分佈、讀寫請求角度);
- 資料寫入時的UNDO、表、索引操作流程;
- 資料更新、刪除時的UNDO、表、索引操作流程;
- UK約束的操作流程。
- 索引分裂。
- BTREE的連結串列結構
- HASH索引的內部結構
- GIN索引的結構
- 當表上面有很多索引時,會有什麼問題,如何優化,核心層面有什麼優化方法
- 多個欄位都可以走索引時,優化器如何做出選擇,bitmap scan的原理
- 多欄位複合索引的欄位順序選擇規則,解釋清楚原理
11 約束
- 有哪些約束(check, fk, uk, pk, not null, exclusive constraint)
- 每一種約束作用
12 儲存結構
- 資料庫有哪些索引介面:儲存結構如何(meta, root, …);
- FSM,VM結構,insert時如何找到適當的BLOCK,如何避免併發INSERT時插入同一個BLOCK帶來的熱點
- HEAP的資料檔案結構、BLOCK結構、TUPLE結構
- 行儲存與列儲存,以及適應的場景,不適應的場景
- 列儲存有哪些核心層面的優化手段
- 分散式資料庫的資料傾斜原因,解法
- 分散式資料庫的查詢傾斜原因,解法
- Ora聚集表的儲存結構,應用場景,缺點(不適合的場景)
13 型別
- 資料庫裡面有哪些資料型別,分佈適合什麼業務場景
- 不同資料型別有一些什麼樣的操作
- 如何自定義型別
14 SQL語法
- CRUD
- CTE
- 遞迴
- SKIP LOCK
- MERGE
- CUBE
- 行列變換
- 非同步訊息
- 事務,子事務
- 2PC
- 會話memcontext
- SRF
- 聚合
- 視窗
- 如何自定義聚合
- 聚合計算原理
- 並行聚合計算原理
- 哪些操作可能rewrite table, 如何避免
15 如何排錯
- 如何定位錯誤原始碼
- 如何上報BUG
- 有哪些可以尋求幫助的途徑,網站
16 執行資訊
- 有哪些執行資訊值得關注
- 有哪些跟蹤開關
- 有哪些開發者開關
- 原始碼中有哪些編譯開關可被設定,在哪裡設定
- 當前執行資訊
- 歷史執行資訊
- TOP
- 等待事件
- 等待
- 系統層PROFILE
- 審計
17 問題診斷思路
18 垃圾回收
- Ora,UNDO原理
- PG,多版本原理
- PG 新儲存引擎zheap
- 垃圾回收原理,相關引數
- FREEZE的原理,相關引數
19 並行
- 如何並行建立索引,原理。
- 資料庫支援哪些平行計算,介紹平行計算的原理,優化器對並行度的計算原理。
- 如何控制並行度
- join 並行的原理 (分別介紹 hash, mrege, nestloop)
- 並行seq scan原理
- 並行索引掃描原理
- 並行排序的原理
- 分割槽表並行JOIN,GROUP原理
- 並行GROUP原理
- 多階段並行聚合的原理
20 排序
- 排序演算法
- 非完全索引排序優化原理
21 鎖和併發控制
- 有一些什麼鎖
- 鎖的衝突
- 事務隔離級別
- MVCC機制
- 2PC的過程
- 垃圾回收與事務的關係
- 為什麼需要SNAPSHOT TOO OLD
- UNDO機制
- 什麼情況下可能出現雪崩,如何防止雪崩
- 分散式資料庫的分散式死鎖檢測機制
- 分佈死鎖資料庫的快照,併發控制,隔離實現原理
- 分散式資料庫的全域性一致性備份,恢復
22 流複製
- 流複製的機制
- 衝突檢測機制
- 如果備庫開啟FEED BACK對主庫有什麼傷害
- 同步複製機制的堵塞機制
- 如何降低延遲
- 如何避免主備斷開後需要重搭
- 如何做到資料傳輸安全
- 如何降低跨域資料傳輸延遲
23 應用場景
- 遞迴查詢的應用場景介紹
- 分頁的使用和優化
- 如何優化任意欄位組合查詢
- 如何優化 混合 普通型別、陣列、多值列、JSON、空間、時間 等多種搜尋過濾需求同時出現 的場景
- 如何優化模糊查詢、全文檢索、相似查詢
- 如何優化kv, hstore, json, array, tsvector的搜尋
- 如何優化時序資料的搜尋、插入 (schema less (以及為什麼需要schema less)。 BRIN的核心優化,range 分段。 )
- IOT場景有什麼特點,資料庫如何支撐。
- 如何分析相似軌跡,時態資料查詢如何優化。
- TP、AP、流、圖、時序、空間、搜尋、系統架構設計。
- 這幾類場景,分別用到資料庫的什麼特性。
- 空間資料
- 空間資料有一些什麼型別。向量(點、線、面、點雲、軌跡)、柵格。
- 哪些場景會用到空間資料,怎麼使用。
- 空間資料如何構建索引,講講索引結構。
- 時空資料,多維度查詢,如何構建索引。
- 大型空間資料的處理,搜尋。
- 資料路由問題。
- 1到多的送餐路徑規劃。
- 多到多的路徑規劃。
- 開發型別、UDF、操作符、索引對接。
24 架構
- NOSQL, 快取, 關聯式資料庫, OLAP等產品, 如何結合使用
- 為什麼業務要限流開關
- 如何設計限流
- 資料生態包含哪些東西
25 監控與日常維護
- 資料庫哪些指標需要被監控,為什麼,如何發現問題。
- 長事務有什麼問題?
- 從垃圾回收的角度,解釋垃圾回收原理,判定
- 如果能提出改進思路更好
- 延遲VACUUM有什麼問題
- 備庫開啟FEED BACK有什麼問題
26 資料庫可靠性
- 如何保證資料的可靠性
- 如何保證資料的一致性
- 如何保證資料的原子性
- 閃回
- 閃回有哪些操作歸類
- 如何設計閃回,針對不同的操作,應該如何閃回
- 容災
- 如何設計容災系統。
- 如何定義0丟失。
- 如何設計0丟失的資料庫叢集。
- 多副本
- 解釋一下多副本的原理
27 資料庫可用性
- 可用性與可靠性如何兼得
28 資料庫安全
- 安全系統設計
- 安全分層,每一層如何設計
- 審計系統設計
29 硬體評估與規劃
- 如何評估需要多少硬體。
30 版本升級與資料遷移、同步
- 小版本升級
- 大版本升級
- 同構資料遷移
- 同構資料同步
- 異構資料遷移
- 異構資料同步
31 社群動態
經常關注
32 Oracle相容性相關
33 PG開源生態
34 PG的缺陷和優勢
- 缺陷
- 優勢
- ROADMAP
- 你有什麼想法
35 對PG軟體本身有什麼想法,建議,TODO
36 對PG社群的發展有什麼想法,建議,TODO
37 對分散式資料庫,RAC,AURORA架構的理解
38 思考
- 為什麼需要設計REDO,有沒有想過持久化儲存與記憶體效能齊平後的全新架構
- wal writer 機制,如何設計並行wal writer
- 運維DBA和開發DBA的區別?
- 如何進行資料庫選型
- 市面上有哪幾類資料產品,分別適應什麼場景,設計上有什麼軟肋,不適應什麼場景. db-engine
- 緊急情況處理、
- 問題診斷思路、
- 邏輯複製需要注意什麼東西?
- 如何設計BENCHMARK。
- 為什麼喜歡搞資料庫?
- 經常上什麼技術網站?
- 遇到問題通常如何應對?
- 工作經歷,總結,反思,改變。
CODING能力考察
崗位等級劃分標準
主要發掘小夥伴什麼方面的能力
基本功
經驗
上進心
學習能力
品格
應變能力
抗壓能力
穩定性
理想
格局、藍圖
執行力
心態
…
相關文章
- 面試準備——JVM相關面試JVM
- 大資料崗位總結和相關書籍推薦大資料
- Apple 面試寶典 – HR, 電面, Onsite 準備建議APP面試
- Apple 面試寶典 - HR, 電面, Onsite 準備建議APP面試
- 圖解Redis6中的9種資料結構,牆裂建議準備去面試的人先看(乾貨,建議收藏)圖解Redis資料結構面試
- Openfire安裝準備-MySQL資料庫準備MySql資料庫
- 資料庫相關資料庫
- 設計HBase資料庫資料表有關的建議資料庫
- 資料科學家面試如何準備?資料科學面試
- 正式上崗前的準備:怎麼檢視資料庫引數配置資訊資料庫
- 資料庫優化建議資料庫優化
- 歡迎大家推薦資料庫的相關職位資料庫
- 我是如何準備阿里的社招面試,給準備java社招的朋友的一個建議!阿里面試Java
- 推薦兩個Python開發相關崗位Python
- 騰訊招聘近期上架了19個《寶可夢》相關崗位
- SequoiaDB資料庫之建議資料庫
- 資料庫 (相關練習)資料庫
- 部落格園資料備份相關
- 面試準備面試
- 2 Day DBA-管理方案物件-執行備份和恢復-備份資料庫-關於Oracle建議備份策略物件資料庫Oracle
- [轉]Mysql資料庫相關資料索引MySql資料庫索引
- 分享一個自己準備 PHP 面試的資料PHP面試
- Gartner:預計2015年將全球產生440萬大資料相關崗位大資料
- 構建大資料平臺(二)準備工作大資料
- 資料庫事物相關問題資料庫
- sqlite 資料庫 相關知識SQLite資料庫
- Sybase資料庫空間相關資料庫
- 大資料崗位介紹-引子大資料
- PHP 使用 Oracle 資料庫的準備工作PHPOracle資料庫
- 資料倉儲架構師的崗位職責和崗位要求架構
- Linux運維前景如何?相關就業崗位有哪些?Linux運維就業
- 2021-PHP面試題“資料庫“相關知識點面試大全總結PHP面試題資料庫
- 一些運維相關的建議運維
- WebRTC:資料傳輸相關協議簡介Web協議
- 資料庫 - 關聯式資料庫標準語言SQL資料庫SQL
- 面試準備(1)面試
- 如何準備面試?面試
- 面試準備(一)面試