一搀菩、什么是觸發(fā)器?
??我的理解是觸發(fā)器是一種用來保障參照完整性的特殊的存儲過程,當(dāng)對指定的表進行操作時觸發(fā)器會調(diào)用儲存過程。其大致分為兩類今缚,一種是instead另一種是after正如他們的中文翻譯的意思,intstead即存儲過程代替原有的操作抛蚤,原先的操作無效台谢;after即在操作完成后再執(zhí)行存儲過程,原先的操作有效岁经。
二朋沮、什么是存儲過程?
??存儲過程是事先編譯好并存儲在數(shù)據(jù)庫中的一段sql語句缀壤,他可以極大的簡化開發(fā)人員的很多工作樊拓。它有這么幾個特點,一次編譯即可多次使用诉位,如果語句復(fù)雜的話相對于普通的sql數(shù)據(jù)是有明顯的優(yōu)勢的骑脱。但是它也有缺點,當(dāng)業(yè)務(wù)邏輯需要修改時苍糠,存儲過程是不能夠進行修改的所以需要重新編寫儲存過程叁丧;存儲過程相對于簡單的sql語句來說沒有什么優(yōu)勢,還會增加開發(fā)的難度岳瞭;如果使用了儲存過程拥娄,數(shù)據(jù)庫損壞的話整個應(yīng)用程序都會崩潰,需要重新的寫存儲過程瞳筏。
三稚瘾、什么是索引?
??索引是一種特殊的查詢表姚炕,創(chuàng)建索引可以提高查詢的效率摊欠。可以將索引類比成新華字典的目錄柱宦,我們通過索引可以定位字的位置些椒,而不需要遍歷整個字典。
優(yōu)點:
- 通過創(chuàng)建唯一索引我們可以保證數(shù)據(jù)庫每一行數(shù)據(jù)的唯一性
- 大大的提高了查詢的效率掸刊,普通的查詢是需要全表掃描的免糕,而索引是通過實現(xiàn)排好序,從而查詢是可以用用二分查找等高效率的算法忧侧。
- 加快表與表之間的連接石窑,在實現(xiàn)數(shù)據(jù)的的參照完整性的方面特別有意義
缺點:
- 索引的創(chuàng)建和維護需要時間,這個時間隨著數(shù)據(jù)量而增加
- 索引是需要占用物理空間的
- 當(dāng)對表中的數(shù)據(jù)修改蚓炬、新增松逊、或者刪除時,索引也是需要動態(tài)維護的肯夏,所耗費的時間也會更長
綜上所述,建立索引的時候是需要詳細(xì)的去考慮的棺棵,因為索引是建立在列上的楼咳,要考慮哪些列是適合建立索引的,同時索引會使增刪改的時間變長烛恤,索引如果表需要頻繁的數(shù)據(jù)維護時,是不適合建立索引的
四余耽、什么是事務(wù)
??事務(wù)是數(shù)據(jù)庫操作的最小單元缚柏,作為一個邏輯工作單元的SQL語句組這些操作作為一個整體向系統(tǒng)提交,要么都執(zhí)行碟贾,要么都不執(zhí)行币喧。如果任何一個操作出了問題,都會回滾到之間的操作袱耽。
事務(wù)的四大特性
- 原子性
事務(wù)是數(shù)據(jù)庫的邏輯工作單位杀餐,事務(wù)中包含的各操作要么都做,要么都不做 - 一致性
事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)朱巨。因此當(dāng)數(shù)據(jù)庫只包含成功事務(wù)提交的結(jié)果時史翘,就說數(shù)據(jù)庫處于一致性狀態(tài)。如果數(shù)據(jù)庫系統(tǒng) 運行中發(fā)生故障冀续,有些事務(wù)尚未完成就被迫中斷琼讽,這些未完成事務(wù)對數(shù)據(jù)庫所做的修改有一部分已寫入物理數(shù)據(jù)庫,這時數(shù)據(jù)庫就處于一種不正確的狀態(tài)洪唐,或者說是 不一致的狀態(tài)钻蹬。 - 隔離性
一個事務(wù)的執(zhí)行不能其它事務(wù)干擾。即一個事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其它并發(fā)事務(wù)是隔離的凭需,并發(fā)執(zhí)行的各個事務(wù)之間不能互相干擾问欠。 - 持續(xù)性
也稱永久性,指一個事務(wù)一旦提交粒蜈,它對數(shù)據(jù)庫中的數(shù)據(jù)的改變就應(yīng)該是永久性的顺献。接下來的其它操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。
五薪伏、什么是鎖滚澜?
鎖(LOCKING)是最常用的并發(fā)控制機構(gòu)。是防止其他事務(wù)訪問指定的資源控制嫁怀、實現(xiàn)并發(fā)控制的一種主要手段设捐。鎖是事務(wù)對某個數(shù)據(jù)庫中的資源(如表和記 錄)存取前,先向系統(tǒng)提出請求塘淑,封鎖該資源萝招,事務(wù)獲得鎖后,即取得對數(shù)據(jù)的控制權(quán)存捺,在事務(wù)釋放它的鎖之前槐沼,其他事務(wù)不能更新此數(shù)據(jù)曙蒸。當(dāng)事務(wù)撤消后,釋放被 鎖定的資源岗钩。
當(dāng)一個用戶鎖住數(shù)據(jù)庫中的某個對象時纽窟,其他用戶就不能再訪問該對象
兩種鎖
- 排他鎖:當(dāng)數(shù)據(jù)對象被加上排它鎖時,其他的事務(wù)不能對它讀取和修改兼吓。
- 共享鎖:加了共享鎖的數(shù)據(jù)對象可以被其他事務(wù)讀取臂港,但不能修改。