更新時(shí)間:2022-12-30 16:59:33 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1415次
問題 1:為什么 group by 和 order by 會(huì)使查詢變慢?
答:groupby 和order by 操作通常需要?jiǎng)?chuàng)建一個(gè)臨時(shí)表來處理查詢的結(jié)果,所以如果查詢結(jié)果很多的話會(huì)嚴(yán)重影響性能。
問題 2:delete、truncate 和 drop 的區(qū)別?
答:Delete 命令用來刪除表的全部或者一部分?jǐn)?shù)據(jù)行,執(zhí)行 delete 之后,用戶需要提交(commmit)或者回滾(rollback)ransaction 來執(zhí)行刪除或者撤銷刪除,delete 命會(huì)觸發(fā)這個(gè)表上所有的 delete 觸發(fā)器Truncate 刪除表中的所有數(shù)據(jù),這個(gè)操作不能回滾,也不會(huì)觸發(fā)這個(gè)表上的觸發(fā)器,tuncate比 delete更快,占用的空間更小。
Drop 命令從數(shù)據(jù)庫中刪除表,所有的數(shù)據(jù)行,索引和權(quán)限也會(huì)被刪除,所有的 DML觸發(fā)器也不會(huì)被觸發(fā),這個(gè)命令也不能回滾。
問題3:簡述數(shù)據(jù)庫的設(shè)計(jì)過程。
答:數(shù)據(jù)庫設(shè)計(jì)分為以下五個(gè)階段: 需求分析:主要是準(zhǔn)確收集用戶信息需求和處理需求,并對(duì)收集的結(jié)果進(jìn)行整理和分析,形成需求說
概念結(jié)構(gòu)設(shè)計(jì):對(duì)用戶需求進(jìn)行綜合、歸納、抽象,形成一個(gè)與與具體的 DBMS 無關(guān)概念模型(一般為ER模型)。
邏輯結(jié)構(gòu)設(shè)計(jì):將概念結(jié)構(gòu)設(shè)計(jì)的概念模型轉(zhuǎn)化為某個(gè)特定的 DBMS所支持的數(shù)據(jù)模型,建立數(shù)據(jù)庫邏輯模式,并對(duì)其進(jìn)行優(yōu)化,同時(shí)為各種用戶和應(yīng)用設(shè)計(jì)外模式。物理結(jié)構(gòu)設(shè)計(jì):為設(shè)計(jì)好的邏輯模型選擇物理結(jié)構(gòu),包括存儲(chǔ)結(jié)構(gòu)和存取方法等,建立數(shù)據(jù)庫物理模
實(shí)施和維護(hù):實(shí)施就是使用DLL 語言建立數(shù)據(jù)庫模式,將實(shí)際數(shù)據(jù)載入數(shù)據(jù)庫,建立真正的數(shù)據(jù)庫維護(hù)階段是對(duì)運(yùn)行中的數(shù)據(jù)庫進(jìn)行評(píng)價(jià)、調(diào)整和修改。問題4:插入記錄時(shí)可以不指定字段名稱嗎?
答:不管使用哪種INSERT 語法,都必須給出 VALUES 的正確數(shù)目。如果不提供字段名,則必須給每個(gè)字段提供一個(gè)值,否則將產(chǎn)生一條錯(cuò)誤消息。如果要在INSERT 操作中省略某些字段,這些字段需要滿足一定條件:該列定義為允許空值,或者表定義時(shí)給出默認(rèn)值,如果不給出值,將使用默認(rèn)值。
問題4:插入記錄時(shí)可以不指定字段名稱嗎?
答:不管使用哪種INSERT 語法,都必須給出 VALUES 的正確數(shù)目。如果不提供字段名,則必須給每個(gè)字段提供一個(gè)值,否則將產(chǎn)生一條錯(cuò)誤消息。如果要在INSERT 操作中省略某些字段,這些字段需要滿足一定條件:該列定義為允許空值,或者表定義時(shí)給出默認(rèn)值,如果不給出值,將使用默認(rèn)值
問題5:本地索引與全局索引的差別與適用情況
答:對(duì)于本地索引,每一個(gè)表分區(qū)對(duì)應(yīng)一個(gè)索引分區(qū),當(dāng)表的分區(qū)發(fā)生變化時(shí),索引的維護(hù)由數(shù)據(jù)庫自動(dòng)進(jìn)行。對(duì)于全局索引,可以選擇是否分區(qū),而且索引的分區(qū)可以不與表分區(qū)相對(duì)應(yīng)。當(dāng)對(duì)分區(qū)進(jìn)行維護(hù)操作時(shí),通常會(huì)導(dǎo)致全局索引的INVALDED,必須在執(zhí)行完操作后 REBUILD
問題6:事務(wù)和鎖有什么關(guān)系?
答:可以使用多種機(jī)制來確保數(shù)據(jù)的完整性,例如約束、觸發(fā)器以及本章介紹的事務(wù)和鎖等。事務(wù)和鎖的關(guān)系非常緊密。事務(wù)包含一系列的操作,這些操作要么全部成功,要么全部失敗,通過事務(wù)機(jī)制管理多個(gè)事務(wù),保證事務(wù)的一致性,事務(wù)中使用鎖保護(hù)指定的資源,防止其他用戶修改另外一個(gè)還沒有完成的事務(wù)中的數(shù)據(jù)。
問題 7:談?wù)勀銓?duì)索引的理解?
答:索引是若干數(shù)據(jù)行的關(guān)鍵字的列表,查詢數(shù)據(jù)時(shí),通過索引中的關(guān)鍵字可以快速定位到要訪問的記錄所在的數(shù)據(jù)塊,從而大大減少讀取數(shù)據(jù)塊的 I/0 次數(shù),因此可以顯著提高性能
以上就是“數(shù)據(jù)庫工程師常見的一些參考性面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743