數據庫面試題_第1頁
數據庫面試題_第2頁
數據庫面試題_第3頁
數據庫面試題_第4頁
數據庫面試題_第5頁
已閱讀5頁,還剩2頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上1.事務四大特性原子性,要么執行,要么不執行 隔離性,所有操作全部執行完以前其它會話不能看到過程 一致性,事務前后,數據總額一致 持久性,一旦事務提交,對數據的改變就是永久的2.數據庫隔離級別臟讀:事務B讀取事務A還沒有提交的數據 不可重復讀:兩次事務讀的數據不一致 幻讀:事務A修改了數據,事務B也修改了數據,這時在事務A看來,明明修改了數據,咋不一樣3.MYSQL的兩種存儲引擎區別(事務、鎖級別等等),各自的適用場景引擎特性MYISAM不支持外鍵,表鎖,插入數據時,鎖定整個表,查表總行數時,不需要全表掃描INNODB支持外鍵,行鎖,查表總行數時,全表掃描4.索引有B

2、+索引和hash索引索引區別Hashhash索引,等值查詢效率高,不能排序,不能進行范圍查詢B+數據有序,范圍查詢5.聚集索引和非聚集索引索引區別聚集索引數據按索引順序存儲,中子結點存儲真實的物理數據非聚集索引存儲指向真正數據行的指針6.索引的優缺點,什么時候使用索引,什么時候不能使用索引索引最大的好處是提高查詢速度, 缺點是更新數據時效率低,因為要同時更新索引 對數據進行頻繁查詢進建立索引,如果要頻繁更改數據不建議使用索引。7.InnoDB索引和MyISAM索引的區別一是主索引的區別,InnoDB的數據文件本身就是索引文件。而MyISAM的索引和數據是分開的。 二是輔助索引的區別:InnoD

3、B的輔助索引data域存儲相應記錄主8.索引的底層實現(B+樹,為何不采用紅黑樹,B樹)重點樹區別紅黑樹增加,刪除,紅黑樹會進行頻繁的調整,來保證紅黑樹的性質,浪費時間B樹也就是B-樹B樹,查詢性能不穩定,查詢結果高度不致,每個結點保存指向真實數據的指針,相比B+樹每一層每屋存儲的元素更多,顯得更高一點。B+樹B+樹相比較于另外兩種樹,顯得更矮更寬,查詢層次更淺9.B+樹的實現一個m階的B+樹具有如下幾個特征:1.有k個子樹的中間節點包含有k個元素(B樹中是k-1個元素),每個元素不保存數據,只用來索引,所有數據都保存在葉子節點。2.所有的葉子結點中包含了全部元素的信息,及指向含這些元素記錄的

4、指針,且葉子結點本身依關鍵字的大小自小而大順序鏈接。3.所有的中間節點元素都同時存在于子節點,在子節點元素中是最大(或最?。┰?0.為什么使用B+Tree索引查找過程中就要產生磁盤I/O消耗,主要看IO次數,和磁盤存取原理有關。 根據B-Tree的定義,可知檢索一次最多需要訪問h個節點。數據庫系統的設計者巧妙利用了磁盤預讀原理, 將一個節點的大小設為等于一個頁,這樣每個節點只需要一次I/O就可以完全載入 局部性原理與磁盤預讀11.Sql的優化1.sql盡量使用索引,而且查詢要走索引2.對sql語句優化子查詢變成left joinlimit 分布優化,先利用ID定位,再分頁or條件優化,多個o

5、r條件可以用union all對結果進行合并(union all結果可能重復)不必要的排序where代替having,having 檢索完所有記錄,才進行過濾避免嵌套查詢對多個字段進行等值查詢時,聯合索引12.索引最左前綴問題如果對三個字段建立聯合索引,如果第二個字段沒有使用索引,第三個字段也使用不到索引了13.索引分類,索引失效條件索引類型概念普通索引最基本的索引,沒有任何限制唯一索引與"普通索引"類似,不同的就是:索引列的值必須唯一,但允許有空值。主鍵索引它是一種特殊的唯一索引,不允許有空值。全文索引針對較大的數據,生成全文索引很耗時好空間。組合索引為了更多的提高mys

6、ql效率可建立組合索引,遵循”最左前綴“原則失效條件 條件是or,如果還想讓or條件生效,給or每個字段加個索引 like查詢,以%開發 內部函數 對索引列進行計算 is null不會用,is not null 會用14.數據庫的主從復制復制方式操作異步復制默認異步復制,容易造成主庫數據和從庫不一致,一個數據庫為Master,一個數據庫為slave,通過Binlog日志,slave兩個線程,一個線程去讀master binlog日志,寫到自己的中繼日志一個線程解析日志,執行sql,master啟動一個線程,給slave傳遞binlog日志半同步復制只有把master發送的binlog日志寫到s

7、lave的中繼日志,這時主庫,才返回操作完成的反饋,性能有一定降低并行操作slave 多個線程去請求binlog日志15.long_query怎么解決設置參數,開啟慢日志功能,得到耗時超過一定時間的sql16.varchar和char的使用場景類型使用場景varchar字符長度經常變的char用字符長度固定的17.數據庫連接池的作用維護一定數量的連接,減少創建連接的時間 更快的響應時間 統一的管理19.分庫分表,主從復制,讀寫分離讀寫分離,讀從庫,寫主庫 spring配置兩個數據庫,通過AOP(面向切面編程),在寫或讀方法前面進行判斷得到動態切換數據源。20.數據庫三范式級別概念1NF屬性不可

8、分2NF非主鍵屬性,完全依賴于主鍵屬性3NF非主鍵屬性無傳遞依賴21.關系型數據庫和非關系型數據庫區別關系型數據庫優點1、容易理解:二維表結構是非常貼近邏輯世界一個概念,關系模型相對網狀、層次等其他模型來說更容易理解;2、使用方便:通用的SQL語言使得操作關系型數據庫非常方便;3、易于維護:豐富的完整性(實體完整性、參照完整性和用戶定義的完整性)大大減低了數據冗余和數據不一致的概率;4、支持SQL,可用于復雜的查詢。5.支持事務缺點1、為了維護一致性所付出的巨大代價就是其讀寫性能比較差;2、固定的表結構;3、不支持高并發讀寫需求;4、不支持海量數據的高效率讀寫非關系型數據庫1、 使用鍵值對存儲

9、數據; 2、 分布式; 優點 無需經過sql層的解析,讀寫性能很高 基于鍵值對,數據沒有耦合性,容易擴展 存儲數據的格式:nosql的存儲格式是key,value形式 缺點 不提供sql支持22.數據庫中join的inner join, outer join, cross join1.以A,B兩張表為例A left join B選出A的所有記錄,B表中沒有的以null 代替right join 同理2.inner joinA,B的所有記錄都選出,沒有的記錄以null代替3.cross join (笛卡爾積)A中的每一條記錄和B中的每一條記錄生成一條記錄例如A中有4條,B中有4條,cross join 就有16條記錄23.有哪些鎖,select時怎么加排它鎖鎖概念樂觀鎖自己實現,通過版本號悲觀鎖共享鎖,多個事務,只能讀不能寫,加 lock in share mode排它鎖一個事務,只能寫,for update行鎖作用于數據行表鎖作于用表24.死鎖怎么解決找到進程號,kill 進程25.最左匹配原則最左匹配原則是針對索引的舉例來說:兩個字段(name,age)建立聯合索引,如果where age=12這樣的話,是沒有利用到索引的,這里我們可以簡單的理解為先是對name字段的值排序,然后對age的數據排序,如果直接查age的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論