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