常見的數據庫基礎試題及答案有哪些呢?這應該是很多人都比較關心的問題,下面是小編繼續整理的關于常見的數據庫基礎試題及答案匯總,大家一起往下看吧!
一、庫索引
數據庫索引,是數據庫管理系統中一個排序的數據結構,以協助 快速查詢、更新數據庫表中數據。索引的實現 通常使用 B_TREE。
B_TREE 索引加速了數據訪問,因為存儲引擎不會再去掃描整張表得到需要的數據;相反,它 從根節點開始,根節點保存了子節點的指針,存儲引擎會根據指針快速尋找數據。
二、數據庫怎么優化查詢效率?
1、儲存引擎選擇:如果數據表需要事務處理,應該考慮使用 InnoDB, 因為它完全符合 ACID 特性。如果不需 要事務處理,使用默認存儲引擎 MyISAM 是比較明智的
2、分表分庫,主從。
3、對查詢進行優化,要盡量避免全表掃描,首先應考慮在 where 及order by 涉及的列上建立索引
4、應盡量避免在 where 子句中對字段進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描
5、應盡量避免在 where ?子句中使用!= ?或<> 操作符,否則將引擎放棄使用索引而進行全表掃描
6、應盡量避免在 where 子句中使用 or 來連接條件,如果一個字段有索引,一個字段沒有索引,將導致引擎 放棄使用索引而進行全表掃描
7、Update 語句,如果只更改 1、2 個字段,不要 Update 全部字段, 否則頻繁調用會引起明顯的性能消耗, 同時帶來大量日志
8、對于多張大數據量(這里幾百條就算大了)的表 JOIN,要先分頁再 JOIN,否則邏輯讀會很高,性能很差。
三、你用的 Mysql 是哪個引擎,各引擎之間有什么區別?
主要 MyISAM 與 InnoDB 兩個引擎,其主要區別如下:InnoDB 支持事務,MyISAM 不支持,這一點是非常 之重要。事務是一種高級的處理方式,如在一些列增刪改中只要哪個出錯還可以回滾還原,而 MyISAM 就不可以了;
MyISAM 適合查詢以及插入為主的應用,InnoDB 適合頻繁修改以及涉及到安全性較高的應用; InnoDB 支持外鍵,MyISAM 不支持;
MyISAM 是默認引擎, InnoDB 需要指定; InnoDB 不支持FULLTEXT 類型的索引;
InnoDB中不保存表的行數,如 select count() from table 時,
InnoDB;需要掃描一遍整個表來計算有多少行,但是 MyISAM 只要簡單的讀出保存好的行數即可。注意的是,當 count()語句包含 where 條件時MyISAM 也需要 掃描整個表;
對于自增長的字段,InnoDB 中必須包含只有該字段的索引,但是在 MyISAM 表中可以和其他字 段一起建立聯合索引;清空整個表時,InnoDB 是一行一行的刪除,效率非常慢。MyISAM 則會重建表;
InnoDB 支持行鎖(某些情況下還是鎖整表,如 update table set a=1 where user like '%lee%'
四、如何對查詢命令進行優化?
1、 應盡量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索。
2、 應盡量避免在 where 子句中對字段進行 null 值判斷,避免使用!=或<>操作符,避免使用 or 連接條件,或在 where 子句中使用參數、對字段進行表達式或函數操作,否則會導致權標掃描 c. 不要在 where 子句中的“=”左邊進行函數、算術運算或其他表達式運算, 否則系統將可能無 法正確使用索引。
3、使用索引字段作為條件時,如果該索引是復合索引,那么必須使用到該索引中的第一個字段作為 條件時才能保證系統使用該索引, 否則該索引將不會被使用。
4、 很多時候可考慮用 exists 代替 in、 f. 盡量使用數字型字段。
5、 盡可能的使用 varchar/nvarchar 代替 char/nchar。
6、任何地方都不要使用 select from t??? ,用具體的字段列表代替“,” 不要返回用不到的任何字段。
7、盡量使用表變量來代替臨時表。
8、避免頻繁創建和刪除臨時表,以減少系統表資源的消耗。 k. 盡量避免使用游標,因為游標的效率較差。
9、在所有的存儲過程和觸發器的開始處設置 SET NOCOUNT ON ,在結束時設置 SET NOCOUNT OFF。 m. 盡量避免大事務操作,提高系統并發能力。
10、盡量避免向客戶端返回大數據量,若數據量過大,應該考慮相應需求是否合理。
常見的數據庫基礎試題及答案匯總今天就分享到這里了,如果有興趣的同學可以關注億速云行業資訊,這里每天都會更新大量的優質內容,希望對你們有所幫助吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。