整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          數(shù)據(jù)庫常見面試題(附答案)

          閱讀指南

          文章目錄

          1.事務(wù)四大特性

          原子性,要么執(zhí)行,要么不執(zhí)行隔離性,所有操作全部執(zhí)行完以前其它會話不能看到過程一致性,事務(wù)前后,數(shù)據(jù)總額一致持久性,一旦事務(wù)提交,對數(shù)據(jù)的改變就是永久的

          2.數(shù)據(jù)庫隔離級別

          多個事務(wù)讀可能會道理以下問題

          臟讀:事務(wù)B讀取事務(wù)A還沒有提交的數(shù)據(jù)

          不可重復(fù)讀:,一行被檢索兩次,并且該行中的值在不同的讀取之間不同時

          幻讀:當(dāng)在事務(wù)處理過程中執(zhí)行兩個相同的查詢,并且第二個查詢返回的行集合與第一個查詢不同時

          這兩個區(qū)別在于,不可重復(fù)讀重點在一行,幻讀的重點 ,返回 的集合不一樣

          示例圖,Id =1這一行

          幻讀,返回的集合不一樣

          隔離級別總結(jié)

          3.MYSQL的兩種存儲引擎區(qū)別(事務(wù)、鎖級別等等),各自的適用場景

          引擎特性

          MYISAM

          不支持外鍵,表鎖,插入數(shù)據(jù)時,鎖定整個表,查表總行數(shù)時,不需要全表掃描

          INNODB

          支持外鍵,行鎖,查表總行數(shù)時,全表掃描

          4.索引有B 索引和hash索引

          索引區(qū)別

          Hash

          hash索引,等值查詢效率高,不能排序,不能進(jìn)行范圍查詢

          數(shù)據(jù)有序,范圍查詢

          5.聚集索引和非聚集索引

          索引區(qū)別

          聚集索引

          數(shù)據(jù)按索引順序存儲,中子結(jié)點存儲真實的物理數(shù)據(jù)

          非聚集索引

          存儲指向真正數(shù)據(jù)行的指針

          6.索引的優(yōu)缺點,什么時候使用索引,什么時候不能使用索引

          索引最大的好處是提高查詢速度,
          缺點是更新數(shù)據(jù)時效率低,因為要同時更新索引
          對數(shù)據(jù)進(jìn)行頻繁查詢進(jìn)建立索引,如果要頻繁更改數(shù)據(jù)不建議使用索引。
          
          • 1
          • 2
          • 3
          • 1
          • 2
          • 3

          7.InnoDB索引和MyISAM索引的區(qū)別

          一是主索引的區(qū)別,InnoDB的數(shù)據(jù)文件本身就是索引文件。而MyISAM的索引和數(shù)據(jù)是分開的。二是輔助索引的區(qū)別:InnoDB的輔助索引data域存儲相應(yīng)記錄主

          8.索引的底層實現(xiàn)(B 樹,為何不采用紅黑樹,B樹)重點

          樹區(qū)別

          紅黑樹

          增加,刪除,紅黑樹會進(jìn)行頻繁的調(diào)整,來保證紅黑樹的性質(zhì),浪費時間

          B樹也就是B-樹

          B樹,查詢性能不穩(wěn)定,查詢結(jié)果高度不致,每個結(jié)點保存指向真實數(shù)據(jù)的指針,相比B 樹每一層每屋存儲的元素更多,顯得更高一點。

          B 樹

          B 樹相比較于另外兩種樹,顯得更矮更寬,查詢層次更淺

          9.B 樹的實現(xiàn)

          一個m階的B 樹具有如下幾個特征:
          1.有k個子樹的中間節(jié)點包含有k個元素(B樹中是k-1個元素),每個元素不保存數(shù)據(jù),只用來索引,所有數(shù)據(jù)都保存在葉子節(jié)點。
          2.所有的葉子結(jié)點中包含了全部元素的信息,及指向含這些元素記錄的指針,且葉子結(jié)點本身依關(guān)鍵字的大小自小而大順序鏈接。
          3.所有的中間節(jié)點元素都同時存在于子節(jié)點,在子節(jié)點元素中是最大(或最小)元素
          
          • 1
          • 2
          • 3
          • 4
          • 1
          • 2
          • 3
          • 4

          10.為什么使用B Tree

          索引查找過程中就要產(chǎn)生磁盤I/O消耗,主要看IO次數(shù),和磁盤存取原理有關(guān)。根據(jù)B-Tree的定義,可知檢索一次最多需要訪問h個節(jié)點。數(shù)據(jù)庫系統(tǒng)的設(shè)計者巧妙利用了磁盤預(yù)讀原理,將一個節(jié)點的大小設(shè)為等于一個頁,這樣每個節(jié)點只需要一次I/O就可以完全載入局部性原理與磁盤預(yù)讀

          11.Sql的優(yōu)化

          1.sql盡量使用索引,而且查詢要走索引

          2.對sql語句優(yōu)化

          為什么查詢優(yōu)化對關(guān)系數(shù)據(jù)庫很重要_關(guān)系數(shù)據(jù)庫查詢優(yōu)化的一般準(zhǔn)則_庫查詢優(yōu)化重要關(guān)系數(shù)據(jù)的方法

          子查詢變成left join
          limit 分布優(yōu)化,先利用ID定位,再分頁
          or條件優(yōu)化,多個or條件可以用union all對結(jié)果進(jìn)行合并(union all結(jié)果可能重復(fù))
          不必要的排序
          where代替having,having 檢索完所有記錄,才進(jìn)行過濾
          避免嵌套查詢
          對多個字段進(jìn)行等值查詢時,聯(lián)合索引
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7

          12.索引最左前綴問題

          如果對三個字段建立聯(lián)合索引,如果第二個字段沒有使用索引,第三個字段也使用不到索引了

          13.索引分類,索引失效條件

          索引類型概念

          普通索引

          最基本的索引,沒有任何限制

          唯一索引

          與'普通索引'類似,不同的就是:索引列的值必須唯一,但允許有空值。

          主鍵索引

          它是一種特殊的唯一索引,不允許有空值。

          全文索引

          針對較大的數(shù)據(jù),生成全文索引很耗時好空間。

          組合索引

          為了更多的提高mysql效率可建立組合索引,遵循”最左前綴“原則

          失效條件
          條件是or,如果還想讓or條件生效,給or每個字段加個索引
          like查詢,以%開發(fā)
          內(nèi)部函數(shù)
          對索引列進(jìn)行計算
          is null不會用,is not null 會用
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6

          14.數(shù)據(jù)庫的主從復(fù)制

          復(fù)制方式操作

          異步復(fù)制

          默認(rèn)異步復(fù)制,容易造成主庫數(shù)據(jù)和從庫不一致,一個數(shù)據(jù)庫為Master,一個數(shù)據(jù)庫為slave,通過Binlog日志,slave兩個線程,一個線程去讀master binlog日志,寫到自己的中繼日志一個線程解析日志,執(zhí)行sql,master啟動一個線程,給slave傳遞binlog日志

          半同步復(fù)制

          只有把master發(fā)送的binlog日志寫到slave的中繼日志,這時主庫,才返回操作完成的反饋,性能有一定降低

          并行操作

          slave 多個線程去請求binlog日志

          15.怎么解決

          設(shè)置參數(shù),開啟慢日志功能,得到耗時超過一定時間的sql

          16.varchar和char的使用場景

          類型使用場景

          varchar

          字符長度經(jīng)常變的

          char

          用字符長度固定的

          17.數(shù)據(jù)庫連接池的作用

          維護(hù)一定數(shù)量的連接,減少創(chuàng)建連接的時間
          更快的響應(yīng)時間
          統(tǒng)一的管理
          
          • 1
          • 2
          • 3
          • 1
          • 2
          • 3

          19.分庫分表,主從復(fù)制,讀寫分離

          讀寫分離,讀從庫,寫主庫spring配置兩個數(shù)據(jù)庫,通過AOP(面向切面編程),在寫或讀方法前面進(jìn)行判斷得到動態(tài)切換數(shù)據(jù)源。

          20.數(shù)據(jù)庫三范式

          級別概念

          1NF

          屬性不可分

          2NF

          非主鍵屬性,完全依賴于主鍵屬性

          3NF

          非主鍵屬性無傳遞依賴

          為什么查詢優(yōu)化對關(guān)系數(shù)據(jù)庫很重要_庫查詢優(yōu)化重要關(guān)系數(shù)據(jù)的方法_關(guān)系數(shù)據(jù)庫查詢優(yōu)化的一般準(zhǔn)則

          21.關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫區(qū)別

          關(guān)系型數(shù)據(jù)庫

          優(yōu)點
          1、容易理解:二維表結(jié)構(gòu)是非常貼近邏輯世界一個概念,關(guān)系模型相對網(wǎng)狀、層次等其他模型來說更容易理解;
          2、使用方便:通用的SQL語言使得操作關(guān)系型數(shù)據(jù)庫非常方便;
          3、易于維護(hù):豐富的完整性(實體完整性、參照完整性和用戶定義的完整性)大大減低了數(shù)據(jù)冗余和數(shù)據(jù)不一致的概率;
          4、支持SQL,可用于復(fù)雜的查詢。
          5.支持事務(wù)
          缺點
          1、為了維護(hù)一致性所付出的巨大代價就是其讀寫性能比較差;
          2、固定的表結(jié)構(gòu);
          3、不支持高并發(fā)讀寫需求;
          4、不支持海量數(shù)據(jù)的高效率讀寫
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14

          非關(guān)系型數(shù)據(jù)庫

          1、使用鍵值對存儲數(shù)據(jù);2、分布式;優(yōu)點無需經(jīng)過sql層的解析,讀寫性能很高基于鍵值對,數(shù)據(jù)沒有耦合性,容易擴(kuò)展存儲數(shù)據(jù)的格式:nosql的存儲格式是key,value形式缺點不提供sql支持

          22.數(shù)據(jù)庫中join的left join , inner join, cross join

          1.以A,B兩張表為例
          A left join B
          選出A的所有記錄,B表中沒有的以null 代替
          right join 同理
          2.inner join
          A,B有交集的記錄
          3.cross join (笛卡爾積)
          A中的每一條記錄和B中的每一條記錄生成一條記錄
          例如A中有4條,B中有4條,cross join 就有16條記錄
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11

          23.有哪些鎖,select時怎么加排它鎖

          鎖概念

          樂觀鎖

          自己實現(xiàn),通過版本號

          悲觀鎖

          共享鎖,多個事務(wù),只能讀不能寫,加 lock in share mode

          排它鎖

          一個事務(wù),只能寫,for update

          行鎖

          作用于數(shù)據(jù)行

          表鎖

          作于用表

          24.死鎖怎么解決

          找到進(jìn)程號,kill 進(jìn)程

          25.最左匹配原則

          最左匹配原則是針對索引的
          舉例來說:兩個字段(name,age)建立聯(lián)合索引,如果where age=12這樣的話,是沒有利用到索引的,
          這里我們可以簡單的理解為先是對name字段的值排序,然后對age的數(shù)據(jù)排序,如果直接查age的話,這時就沒有利用到索引了,
          查詢條件where name='xxx’ and age=xx 這時的話,就利用到索引了,再來思考下where age=xx and name=’xxx' 這個sql會利用索引嗎,
          按照正常的原則來講是不會利用到的,但是優(yōu)化器會進(jìn)行優(yōu)化,把位置交換下。這個sql也能利用到索引了
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 1
          • 2
          • 3
          • 4
          • 5

          之前的排版有問題,效果不好,重新排了版,增加了目錄和優(yōu)化了展示,

          如果覺得對你有幫助的話,求點贊,求關(guān)注,比心


          主站蜘蛛池模板: 无码人妻一区二区三区在线视频| 国产婷婷色一区二区三区| 国产精品久久亚洲一区二区| 中文字幕在线观看一区| 亚洲综合一区无码精品| 日本免费电影一区二区| 日本一区二区在线不卡| 国产肥熟女视频一区二区三区 | 老熟女高潮一区二区三区| 国产精品福利区一区二区三区四区| 无码人妻精品一区二区三区9厂| 91福利视频一区| 狠狠色综合一区二区| 亚洲一区动漫卡通在线播放| 亚洲国产国产综合一区首页| 精品一区二区三区免费视频| 精品国产一区二区22| 亚洲国产精品一区二区三区久久| 韩国一区二区三区视频| 少妇人妻精品一区二区| 日本精品一区二区在线播放| 精品国产福利在线观看一区| 国产aⅴ一区二区| www.亚洲一区| 国产在线观看一区精品| 精品久久一区二区| 亚洲视频一区调教| 亚洲国产韩国一区二区| 亚洲性色精品一区二区在线| 亚洲av日韩综合一区久热| 麻豆国产在线不卡一区二区| 免费一区二区三区四区五区| 国产精品女同一区二区久久| 一区二区视频传媒有限公司| 骚片AV蜜桃精品一区| 无码少妇一区二区三区芒果| 一区二区三区免费视频网站| 国产区精品一区二区不卡中文| 色婷婷一区二区三区四区成人网| 国产91大片精品一区在线观看| 久久精品免费一区二区喷潮|