計算機基礎面試(數據庫)

1. 事務的ACID特性?如何通過日志保證原子性和持久性?
  • 專業解答
    ACID:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。日志(如Redo/Undo Log)記錄操作,故障時重做或回滾。

  • 初中生版
    事務像銀行轉賬:要么轉成功(原子性),要么全取消(回滾)。日志像監控錄像,出問題時按記錄恢復。


2. 數據庫索引的原理是什么?B+樹和哈希索引的區別是什么?
  • 專業解答
    索引加速查詢。B+樹適合范圍查詢,葉節點鏈表結構;哈希索引基于哈希表,僅支持等值查詢。

  • 初中生版
    B+樹像圖書館的分類書架,能快速找到某類書或范圍(比如A到C區);哈希索引像快遞柜,直接輸入編號(哈希值)取件。


3. 什么是臟讀、不可重復讀和幻讀?如何通過隔離級別解決?
  • 專業解答

    • 臟讀:讀到未提交數據;
    • 不可重復讀:同一事務兩次讀結果不同;
    • 幻讀:同一事務兩次查詢行數不同。
      通過隔離級別(如RC、RR)控制。
  • 初中生版
    像考試時:

    • 臟讀:抄同學沒寫完的答案;
    • 不可重復讀:第一次看同學得80分,第二次看被改成90分;
    • 幻讀:第一次統計班里5人及格,第二次突然多出1人。

4. MySQL的InnoDB和MyISAM引擎的主要區別是什么?
  • 專業解答
    InnoDB支持事務、行鎖、外鍵;MyISAM不支持事務,表鎖,但查詢更快。

  • 初中生版
    InnoDB像帶鎖的日記本:能記錄交易(事務),單頁可修改;MyISAM像普通筆記本:寫得快但不能鎖頁。


5. 什么是MVCC(多版本并發控制)?如何實現快照讀?
  • 專業解答
    MVCC通過保存數據多個版本,實現讀不阻塞寫。快照讀(如SELECT)讀取歷史版本,避免加鎖。

  • 初中生版
    MVCC像圖書館的舊書庫:讀者看舊版書(快照),作者同時修改新版,互不干擾。


6. 數據庫范式有哪些?第三范式(3NF)的要求是什么?
  • 專業解答
    主要范式:1NF(字段原子性)、2NF(消除部分依賴)、3NF(消除傳遞依賴)。3NF要求非主鍵字段不依賴其他非主鍵字段。

  • 初中生版
    范式像整理衣柜:1NF(不塞一堆衣服),2NF(按季節分類),3NF(不重復存放同款衣服)。


7. 什么是聚集索引和非聚集索引?InnoDB的主鍵索引結構是怎樣的?
  • 專業解答
    聚集索引決定數據存儲順序(InnoDB主鍵),非聚集索引(二級索引)存鍵值和主鍵地址。

  • 初中生版
    聚集索引像字典正文:按拼音排序;非聚集索引像目錄:查到頁碼再翻到對應頁。


8. SQL注入的原理是什么?如何防范?
  • 專業解答
    攻擊者通過輸入惡意SQL拼接,繞過驗證。防范方法:參數化查詢(預編譯)、過濾特殊字符。

  • 初中生版
    SQL注入像謊報密碼:假裝是管理員(' OR 1=1--),騙過系統。防范:用保險鎖(參數化)封住漏洞。


9. 什么是查詢優化器?基于代價的優化(CBO)如何工作?
  • 專業解答
    查詢優化器生成執行計劃。CBO根據統計信息(如行數、索引)估算成本,選擇最優方案。

  • 初中生版
    查詢優化器像導航:根據路況(數據分布)選擇最短或最快路線。


10. 什么是鎖?行級鎖和表級鎖的區別是什么?
  • 專業解答
    鎖保障并發安全。行級鎖粒度小并發高(如InnoDB),表級鎖粒度大并發低(如MyISAM)。

  • 初中生版
    行級鎖像給單本書上鎖;表級鎖像鎖整個書柜。前者靈活,后者省事但影響多人使用。


11. 什么是死鎖?數據庫如何檢測和解決死鎖?
  • 專業解答
    死鎖是循環等待資源。數據庫通過超時或等待圖檢測,回滾代價小的事務。

  • 初中生版
    死鎖像四人各拿一本書等別人交換。數據庫會強制某人先放手(回滾),解開僵局。


12. 什么是視圖?它的作用和局限性是什么?
  • 專業解答
    視圖是虛擬表,簡化查詢、提供安全隔離。局限:更新受限,性能可能下降。

  • 初中生版
    視圖像定制窗口:只能看特定數據(如只顯示數學成績),但改數據可能受限制。


13. 什么是存儲過程?與普通SQL語句相比有何優缺點?
  • 專業解答
    存儲過程是預編譯的SQL集合,減少網絡開銷,但調試困難,移植性差。

  • 初中生版
    存儲過程像預制菜:提前做好菜譜(SQL),點菜(調用)更快,但換廚房(數據庫)可能不兼容。


14. 什么是分區表?如何選擇分區鍵?
  • 專業解答
    分區表將大數據分片存儲(如按時間、范圍)。分區鍵應選擇高頻查詢條件字段。

  • 初中生版
    分區表像分冊的百科全書:按年份或字母分冊,查資料更快。


15. 什么是數據庫的冷備份和熱備份?
  • 專業解答
    冷備份在停止服務時拷貝數據;熱備份在運行時備份,可能丟失少量數據。

  • 初中生版
    冷備份像關燈打掃房間;熱備份像邊用房間邊吸塵,可能漏掉角落。


16. 什么是NoSQL數據庫?與關系型數據庫的適用場景有何不同?
  • 專業解答
    NoSQL支持非結構化數據,高擴展性(如MongoDB、Redis),適合大數據和高并發;關系型數據庫強一致性,適合事務場景。

  • 初中生版
    NoSQL像雜貨店:能存各種奇怪的東西(JSON、圖片);關系型數據庫像超市:貨架整齊,分類明確。


17. 什么是CAP定理?如何權衡一致性、可用性和分區容忍性?
  • 專業解答
    CAP定理:分布式系統無法同時滿足一致性(C)、可用性(A)、分區容忍性(P)。通常根據場景選擇CP或AP。

  • 初中生版
    CAP像餐廳服務:

    • CP:必須等廚師做好菜(一致)才上桌,可能等很久;
    • AP:直接上桌(可用),但可能菜沒做好。

18. 什么是Redis的數據持久化機制?RDB和AOF的區別是什么?
  • 專業解答
    RDB定期快照,恢復快但可能丟數據;AOF記錄寫操作,數據更完整但體積大。

  • 初中生版
    RDB像拍照存檔:定期拍一張全家福;AOF像錄像:記錄所有動作,恢復時重放。


19. 什么是數據庫的索引覆蓋(Covering Index)?
  • 專業解答
    索引覆蓋指查詢字段全在索引中,無需回表,提升效率。

  • 初中生版
    索引覆蓋像目錄包含答案:查書時直接看目錄,不用翻正文。


20. 什么是連接(JOIN)算法?嵌套循環、哈希連接和排序合并連接的區別是什么?
  • 專業解答

    • 嵌套循環:遍歷兩表逐行匹配;
    • 哈希連接:構建哈希表快速匹配;
    • 排序合并:排序后順序合并。
  • 初中生版

    • 嵌套循環像逐個問名字找朋友;
    • 哈希連接像用學號快速匹配;
    • 排序合并像按身高排隊后組隊。

21. 什么是慢查詢日志?如何分析和優化慢查詢?
  • 專業解答
    慢查詢日志記錄超時SQL。通過EXPLAIN分析執行計劃,優化索引或拆分查詢。

  • 初中生版
    慢查詢日志像考卷錯題本:找出耗時的題目(SQL),分析原因(索引、算法),針對性練習。


22. 什么是數據庫的讀寫分離?如何實現?
  • 專業解答
    讀寫分離將寫操作到主庫,讀操作到從庫。通過代理(如ProxySQL)或中間件路由。

  • 初中生版
    讀寫分離像圖書館:主館(主庫)處理借書登記,分館(從庫)提供閱讀,減輕主館壓力。


23. 什么是分庫分表?如何解決跨庫查詢問題?
  • 專業解答
    分庫分表按規則拆分數據。跨庫查詢需應用層聚合或全局表冗余。

  • 初中生版
    分庫分表像分班管理:按學號分班,查全校數據時需合并各班結果。


24. 什么是事務的隔離級別?MySQL默認的隔離級別是什么?
  • 專業解答
    隔離級別:RU(讀未提交)、RC(讀已提交)、RR(可重復讀)、S(串行化)。MySQL默認RR。

  • 初中生版
    隔離級別像考試監考嚴格程度:

    • RU:能看到別人未寫完的答案;
    • RR:考試期間答案被鎖定,只能看初始版本。

25. 什么是數據庫的WAL(Write-Ahead Logging)機制?
  • 專業解答
    WAL先寫日志再修改數據,保證崩潰時可通過日志恢復。

  • 初中生版
    WAL像先記賬再花錢:即使突然斷電,也能根據賬本(日志)找回數據。


26. 什么是數據庫的緩沖池(Buffer Pool)?如何管理頁的加載和淘汰?
  • 專業解答
    緩沖池緩存磁盤頁,減少IO。通過LRU算法管理,頻繁訪問頁駐留,冷頁淘汰。

  • 初中生版
    緩沖池像書桌:常用書放桌面(緩沖池),不常用的放書架(磁盤)。LRU像整理書桌,最近不用的先收起來。


27. 什么是數據庫的樂觀鎖和悲觀鎖?
  • 專業解答
    悲觀鎖假設沖突多(如SELECT FOR UPDATE),樂觀鎖假設沖突少(如版本號驗證)。

  • 初中生版
    悲觀鎖像考試鎖卷子:怕人偷看,全程盯著;樂觀鎖像開放答題:提交時檢查是否被改過。


28. 什么是數據庫的物化視圖?與普通視圖的區別是什么?
  • 專業解答
    物化視圖存儲查詢結果,定期刷新;普通視圖實時計算。

  • 初中生版
    物化視圖像預制菜:提前做好存冰箱;普通視圖像現炒菜:點單后現做。


29. 什么是數據庫的自治事務?應用場景是什么?
  • 專業解答
    自治事務獨立于主事務提交,用于日志記錄等需獨立提交的場景。

  • 初中生版
    自治事務像獨立記賬本:主交易可能失敗,但賬本記錄必須保留。


30. 什么是數據庫的基數(Cardinality)?如何影響查詢優化?
  • 專業解答
    基數是列唯一值的數量。高基數列(如身份證)適合建索引,低基數列(如性別)索引效果差。

  • 初中生版
    基數像班級學號:如果學號唯一(高基數),按學號找人快;如果按性別(低基數),索引作用小。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/72419.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/72419.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/72419.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

fastjson1.2.24 CVE-2017-18349 漏洞復現

fastjson1.2.24 CVE-2017-18349 漏洞復現 時間不等人啊/(ㄒoㄒ)/~~ 0. 前置知識 建議直接看參考鏈接 JNDI:Java命名和目錄接口 RMI:遠程方法調用注冊表 LDAP:輕量級目錄訪問協議 CORBA:公共對象請求代理體系結構 1. jndi …

【計算機視覺】手勢識別

手勢識別是計算機視覺領域中的重要方向,通過對攝像機采集的手部相關的圖像序列進行分析處理,進而識別其中的手勢,手勢被識別后用戶就可以通過手勢來控制設備或者與設備交互。完整的手勢識別一般有手的檢測和姿態估計、手部跟蹤和手勢識別等。…

Leetcode 37: 解數獨

Leetcode 37: 解數獨 是經典的回溯算法問題,考察如何利用遞歸和剪枝高效求解數獨問題。這題主要考察對回溯、遞歸、深度優先搜索 (DFS)、剪枝優化等算法思想的掌握。 題目描述 給定一個部分填充的數獨(9 x 9)網格,用一個有效的算…

VSCode 移除EmmyLua插件的紅色波浪線提示

VSCode 中安裝插件EmmyLua,然后打開lua文件的時候,如果lua代碼引用了C#腳本的變量,經常出現 “undefined global variable: UnityEngineEmmyLua(undefined-global)” 的紅色波浪線提示,這個提示看著比較煩人,我們可以通…

【音視頻】視頻基本概念

一、視頻的基本概念 1.1 視頻碼率(kb/s) 視頻碼率是指視頻文件在單位時間內使用的數據流量,也叫碼流率。碼率越大,說明單位時間內取樣率越大,數據流進度也就越高 1.2 視頻幀率(fps) 視頻幀率…

Grafana服務安裝并啟動

Grafana服務安裝并啟動 1、介紹2、下載Grafana3、解壓縮文件4、啟動Grafana服務5、增加數據源,填寫Prometheus訪問地址6、增加圖表 1、介紹 Grafana是一個開源的可視化系統監控和警報工具包。 2、下載Grafana 介紹:Grafana是一個開源的可視化系統監控和警報工具包…

如何將hf-mirror.com作為vllm默認的下載源? conda如何移除虛擬環境?conda 如何復制一份虛擬環境?

前言 上回咱說道,如果你沒辦法訪問huggingface.co,則可以把modelscope作為vllm默認的下載源。 但如果你非得用你用不了的huggingface.co呢?那你可以考慮將hf-mirror.com作為vllm默認的下載源。這里,hf-mirror.com和huggingface.co的效果是一樣的。 要將hf-mirror.com設為v…

MySQL零基礎教程14—子查詢

子查詢比較簡單,我們還是通過案例引入。 有時候我們查詢的時候,需要用到的不止一個表的數據,比如下面的場景: 查詢名字叫李曉紅同學的班主任姓名 我們提供三個表的基礎信息如下: 從三張表的結構,我們不難…

基于單片機和Wifi技術的智能臺燈設計

摘要 :本文主要介紹了基于單片機AT89C51和Wifi技術的智能臺燈的硬件和軟件設計。該智能臺燈具有根據當前光線自動調節燈光亮度的功能,還可對用戶使用臺燈時處于非正常的距離和姿態時給予報警提示,用戶可以隨時通過手機app查詢智能臺燈的報警記…

最新版AI大模型面試八股文

1、主流的開源大模型體系有哪些,并簡要介紹它們的特點? 這個問題考察面試者對當前大模型生態的了解,包括如 Transformer-based 模型(如 BERT, GPT 系 列)、T5、Switch Transformer 等,以及它們的架構特點和…

在MySQL拿到一條慢SQL語句要如何優化?

在工作的過程中,很多時候會發現執行業務邏輯的時候,某一條SQL語句執行得非常慢。這時候,要如何處理這條語句,如何判斷語句慢的地方在哪里? 一、初級排查 EXPLAIN慢SQL分析 MySQL官網用法: https://dev.mys…

leetcode hot 100 239. 滑動窗口最大值

給你一個整數數組 nums,有一個大小為 k 的滑動窗口從數組的最左側移動到數組的最右側。你只可以看到在滑動窗口內的 k 個數字。滑動窗口每次只向右移動一位。 返回 滑動窗口中的最大值 。 示例 1: 輸入:nums [1,3,-1,-3,5,3,6,7], k 3 輸…

Leetcode 189: 輪轉數組

Leetcode 189: 輪轉數組 這是一道經典問題,題目要求將一個數組向右輪轉 k 個位置,有多種解法可以快速求解,既可以通過額外空間,也可以在 O(1) 的空間復雜度內完成。本題考察數組操作、雙指針,以及算法優化能力。 題目…

優選算法的智慧之光:滑動窗口專題(二)

專欄:算法的魔法世界?????? 個人主頁:手握風云 目錄 一、例題講解 1.1. 最大連續1的個數 III 1.2. 找到字符串中所有字母異位詞 1.3. 串聯所有單詞的子串 1.4. 最小覆蓋子串 一、例題講解 1.1. 最大連續1的個數 III 題目要求是二進制數組&am…

Linux系統安裝Azure CLI完全指南

引言 Azure CLI是管理Azure云服務的重要命令行工具。本文將詳細介紹在Linux系統上安裝Azure CLI的兩種方法,并提供版本管理、故障排除等完整解決方案。 © ivwdcwso (ID: u012172506) 一、安裝前準備 1.1 系統要求 支持的Linux發行版: Ubuntu 20.04/22.04 LTSDebian 10/…

2025嵌入式軟件開發工程師--音頻方向

一、選擇題(每題3分,共30分) 1.以下哪個不是C語言中的關鍵字?( ) A. int B. Float C. Define D. Return 2.以下代碼的輸出是: ( ) inta 5, b 10; printf("%d“, a b); A. 15 B.16 …

TCP/IP四層模型:從入門到精通

第一部分:基礎概念 1.1 什么是TCP/IP? - TCP/IP 是互聯網的基礎通信協議簇,定義了數據如何在網絡中傳輸和路由。 - 與OSI七層模型的對比:TCP/IP更簡化,分為四層,注重實際應用。 1.2 四層模型結構 1. 應…

【Python 數據結構 1.零基礎復習】

目錄 一、輸入與輸出 1.輸入 2.格式化輸出 二、數字與變量 1.字符串 & 整型 2.字符串 & 整型 & 浮點型 3.變量 練習 2235. 兩整數相加 三、運算與操作 1.四則運算 練習 2769. 找出最大的可達成數字 3.取整與取余 練習 2651. 計算列車到站時間 ?編輯 四、真與假 1…

什么是 MGX:MetaGPT

什么是 MGX:MetaGPT MetaGPT是由思碼逸(OpenDILab)團隊開發的一款專注于生成式AI驅動的軟件開發框架,MGX可能是其衍生或升級的相關成果,它創新性地將大語言模型引入軟件開發流程,模擬人類軟件團隊的協作方式,能讓用戶通過自然語言描述需求,即可自動生成完整的軟件項目,…

大模型時代下的數據標注革命:工具、挑戰與未來趨勢

引言 隨著大模型技術的飛速發展,人工智能對高質量標注數據的依賴愈發顯著。傳統的人工標注方式在效率、成本和場景適應性上逐漸顯現瓶頸,而大模型憑借其強大的泛化能力和多模態理解能力,正在推動數據標注從“勞動密集型”向“智能工業化”轉…