常見面試題整理--數(shù)據(jù)庫篇

轉(zhuǎn)自

(一)什么是存儲過程?有哪些優(yōu)缺點(diǎn)?

存儲過程是一些預(yù)編譯的SQL語句。

更加直白的理解:存儲過程可以說是一個記錄集谣蠢,它是由一些T-SQL語句組成的代碼塊,這些T-SQL語句代碼像一個方法一樣實(shí)現(xiàn)一些功能(對單表或多表的增刪改查)查近,然后再給這個代碼塊取一個名字眉踱,在用到這個功能的時候調(diào)用他就行了。

存儲過程是一個預(yù)編譯的代碼塊嗦嗡,執(zhí)行效率比較高

一個存儲過程替代大量T_SQL語句 勋锤,可以降低網(wǎng)絡(luò)通信量饭玲,提高通信速率

可以一定程度上確保數(shù)據(jù)安全

(二)索引是什么侥祭?有什么作用以及優(yōu)缺點(diǎn)?

索引是對數(shù)據(jù)庫表中一或多個列的值進(jìn)行排序的結(jié)構(gòu)茄厘,是幫助MySQL高效獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)

你也可以這樣理解:索引就是加快檢索表中數(shù)據(jù)的方法矮冬。數(shù)據(jù)庫的索引類似于書籍的索引。在書籍中次哈,索引允許用戶不必翻閱完整個書就能迅速地找到所需要的信息胎署。在數(shù)據(jù)庫中,索引也允許數(shù)據(jù)庫程序迅速地找到表中的數(shù)據(jù)窑滞,而不必掃描整個數(shù)據(jù)庫琼牧。

MySQL數(shù)據(jù)庫幾個基本的索引類型:普通索引、唯一索引哀卫、主鍵索引巨坊、全文索引

索引加快數(shù)據(jù)庫的檢索速度

索引降低了插入、刪除此改、修改等維護(hù)任務(wù)的速度

唯一索引可以確保每一行數(shù)據(jù)的唯一性

通過使用索引趾撵,可以在查詢的過程中使用優(yōu)化隱藏器,提高系統(tǒng)的性能

索引需要占物理和數(shù)據(jù)空間

(三)什么是事務(wù)共啃?

事務(wù)(Transaction)是并發(fā)控制的基本單位占调。所謂的事務(wù)暂题,它是一個操作序列,這些操作要么都執(zhí)行究珊,要么都不執(zhí)行薪者,它是一個不可分割的工作單位。事務(wù)是數(shù)據(jù)庫維護(hù)數(shù)據(jù)一致性的單位剿涮,在每個事務(wù)結(jié)束時啸胧,都能保持?jǐn)?shù)據(jù)一致性。

(四)數(shù)據(jù)庫的樂觀鎖和悲觀鎖是什么幔虏?

數(shù)據(jù)庫管理系統(tǒng)(DBMS)中的并發(fā)控制的任務(wù)是確保在多個事務(wù)同時存取數(shù)據(jù)庫中同一數(shù)據(jù)時不破壞事務(wù)的隔離性和統(tǒng)一性以及數(shù)據(jù)庫的統(tǒng)一性纺念。

樂觀并發(fā)控制(樂觀鎖)和悲觀并發(fā)控制(悲觀鎖)是并發(fā)控制主要采用的技術(shù)手段。

悲觀鎖:假定會發(fā)生并發(fā)沖突想括,屏蔽一切可能違反數(shù)據(jù)完整性的操作

樂觀鎖:假設(shè)不會發(fā)生并發(fā)沖突陷谱,只在提交操作時檢查是否違反數(shù)據(jù)完整性。

(五) 使用索引查詢一定能提高查詢的性能嗎瑟蜈?為什么

通常,通過索引查詢數(shù)據(jù)比全表掃描要快.但是我們也必須注意到它的代價.

索引需要空間來存儲,也需要定期維護(hù), 每當(dāng)有記錄在表中增減或索引列被修改時,索引本身也會被修改. 這意味著每條記錄的INSERT,DELETE,UPDATE將為此多付出4,5 次的磁盤I/O. 因?yàn)樗饕枰~外的存儲空間和處理,那些不必要的索引反而會使查詢反應(yīng)時間變慢.使用索引查詢不一定能提高查詢性能,索引范圍查詢(INDEX RANGE SCAN)適用于兩種情況:

基于一個范圍的檢索,一般查詢返回結(jié)果集小于表中記錄數(shù)的30%

基于非唯一性索引的檢索

(六)簡單說一說drop烟逊、deletetruncate的區(qū)別

SQL中的drop、delete铺根、truncate都表示刪除宪躯,但是三者有一些差別

delete和truncate只刪除表的數(shù)據(jù)不刪除表的結(jié)構(gòu)

速度,一般來說:drop> truncate >delete

delete語句是dml,這個操作會放到rollback segement中,事務(wù)提交之后才生效;

如果有相應(yīng)的trigger,執(zhí)行的時候?qū)⒈挥|發(fā).truncate,drop是ddl, 操作立即生效,原數(shù)據(jù)不放到rollback segment中,不能回滾. 操作不觸發(fā)trigger.

(七)drop、deletetruncate分別在什么場景之下使用位迂?

不再需要一張表的時候访雪,用drop

想刪除部分?jǐn)?shù)據(jù)行時候,用delete掂林,并且?guī)蟱here子句

保留表而刪除所有數(shù)據(jù)的時候用truncate

(八) 超鍵臣缀、候選鍵、主鍵泻帮、外鍵分別是什么精置?

超鍵:在關(guān)系中能唯一標(biāo)識元組的屬性集稱為關(guān)系模式的超鍵。一個屬性可以為作為一個超鍵锣杂,多個屬性組合在一起也可以作為一個超鍵脂倦。超鍵包含候選鍵和主鍵。

候選鍵:是最小超鍵元莫,即沒有冗余元素的超鍵赖阻。

主鍵:數(shù)據(jù)庫表中對儲存數(shù)據(jù)對象予以唯一和完整標(biāo)識的數(shù)據(jù)列或?qū)傩缘慕M合。一個數(shù)據(jù)列只能有一個主鍵柒竞,且主鍵的取值不能缺失政供,即不能為空值(Null)。

外鍵:在一個表中存在的另一個表的主鍵稱此表的外鍵。

(九)什么是視圖布隔?以及視圖的使用場景有哪些离陶?

視圖是一種虛擬的表,具有和物理表相同的功能衅檀≌信伲可以對視圖進(jìn)行增,改哀军,查沉眶,操作,試圖通常是有一個表或者多個表的行或列的子集杉适。對視圖的修改不影響基本表谎倔。它使得我們獲取數(shù)據(jù)更容易,相比多表查詢猿推。

只暴露部分字段給訪問者片习,所以就建一個虛表,就是視圖蹬叭。

查詢的數(shù)據(jù)來源于不同的表藕咏,而查詢者希望以統(tǒng)一的方式查詢,這樣也可以建立一個視圖秽五,把多個表查詢結(jié)果聯(lián)合起來孽查,查詢者只需要直接從視圖中獲取數(shù)據(jù),不必考慮數(shù)據(jù)來源于不同表所帶來的差異

(十)說一說三個范式坦喘。

第一范式(1NF):數(shù)據(jù)庫表中的字段都是單一屬性的盲再,不可再分。這個單一屬性由基本類型構(gòu)成起宽,包括整型洲胖、實(shí)數(shù)济榨、字符型坯沪、邏輯型、日期型等擒滑。

第二范式(2NF):數(shù)據(jù)庫表中不存在非關(guān)鍵字段對任一候選關(guān)鍵字段的部分函數(shù)依賴(部分函數(shù)依賴指的是存在組合關(guān)鍵字中的某些字段決定非關(guān)鍵字段的情況)腐晾,也即所有非關(guān)鍵字段都完全依賴于任意一組候選關(guān)鍵字。

第三范式(3NF):在第二范式的基礎(chǔ)上丐一,數(shù)據(jù)表中如果不存在非關(guān)鍵字段對任一候選關(guān)鍵字段的傳遞函數(shù)依賴則符合第三范式藻糖。所謂傳遞函數(shù)依賴,指的是如 果存在"A → B → C"的決定關(guān)系库车,則C傳遞函數(shù)依賴于A巨柒。因此,滿足第三范式的數(shù)據(jù)庫表應(yīng)該不存在如下依賴關(guān)系: 關(guān)鍵字段 → 非關(guān)鍵字段 x → 非關(guān)鍵字段y

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市洋满,隨后出現(xiàn)的幾起案子晶乔,更是在濱河造成了極大的恐慌,老刑警劉巖牺勾,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件正罢,死亡現(xiàn)場離奇詭異,居然都是意外死亡驻民,警方通過查閱死者的電腦和手機(jī)翻具,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來回还,“玉大人裆泳,你說我怎么就攤上這事∧叮” “怎么了晾虑?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長仅叫。 經(jīng)常有香客問我帜篇,道長,這世上最難降的妖魔是什么诫咱? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任笙隙,我火速辦了婚禮,結(jié)果婚禮上坎缭,老公的妹妹穿的比我還像新娘竟痰。我一直安慰自己,他們只是感情好掏呼,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布坏快。 她就那樣靜靜地躺著,像睡著了一般憎夷。 火紅的嫁衣襯著肌膚如雪莽鸿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天拾给,我揣著相機(jī)與錄音祥得,去河邊找鬼。 笑死蒋得,一個胖子當(dāng)著我的面吹牛级及,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播额衙,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼饮焦,長吁一口氣:“原來是場噩夢啊……” “哼怕吴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起县踢,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤械哟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后殿雪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體暇咆,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年丙曙,在試婚紗的時候發(fā)現(xiàn)自己被綠了爸业。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡亏镰,死狀恐怖扯旷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情索抓,我是刑警寧澤钧忽,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站逼肯,受9級特大地震影響耸黑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜篮幢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一大刊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧三椿,春花似錦缺菌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蛋叼,卻和暖如春焊傅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鸦列。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工租冠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人薯嗤。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像纤泵,于是被迫代替她去往敵國和親骆姐。 傳聞我的和親對象是個殘疾皇子镜粤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容