1.數(shù)據(jù)模型
層次模型(樹結(jié)構(gòu))、網(wǎng)狀模型(圖結(jié)構(gòu))、關(guān)系模型(表)
2.主鍵和外鍵
主鍵:數(shù)據(jù)的唯一標(biāo)識記錄(不可以為空)
外鍵:把數(shù)據(jù)和另外一張表關(guān)聯(lián)起來。
1)外鍵是通過定義外鍵約束來實現(xiàn)的
2)通過外鍵約束可以保證無法插入無效的數(shù)據(jù)
3)大部分企業(yè)為了追求速度,并不設(shè)置外鍵約束。
3.索引的本質(zhì)是什么
排好序的快速查找的數(shù)據(jù)結(jié)構(gòu),在where,和order by時起作用
4.索引常用的數(shù)據(jù)結(jié)構(gòu)
B+樹索引、哈希索引
1)如果是等值查詢,那么哈希索引明顯有絕對優(yōu)勢
2)哈希表不能進行模糊查找,B+樹可以通過最左前綴原則快速找到對應(yīng)的數(shù)據(jù)
3)哈希表不能進行范圍查找(哈希表無序),只能全表遍歷
B+樹的節(jié)點類型:內(nèi)部節(jié)點、葉子節(jié)點
內(nèi)部節(jié)點:不存儲數(shù)據(jù)數(shù)據(jù)中不可分割的最小可標(biāo)識單位,只存儲索引
葉子節(jié)點:數(shù)據(jù)都存儲在葉子節(jié)點上
5. B+樹 VS B 樹
1)單一節(jié)點存儲的數(shù)據(jù)更多,查詢次數(shù)更少
2)所有查詢都要查詢到葉子節(jié)點數(shù)據(jù)中不可分割的最小可標(biāo)識單位,查詢性能是穩(wěn)定的
3)所有的葉子節(jié)點形成了一個有序鏈表,更加便于查找
6.聚集索引 VS 非聚集索引
1)聚集索引的葉子節(jié)點存放的是整行數(shù)據(jù),可以通過一次查詢獲得數(shù)據(jù)
2)非聚集索引的葉子節(jié)點存放的是主鍵值,再利用主鍵值通過聚集索引查詢到數(shù)據(jù)
3)一張表只能有一個聚集索引,而可以有多個非聚集索引
7.什么是唯一索引
唯一索引表示該索引值唯一,可以由一個或幾個字段組成,一個表可以有多個唯一索引。
8.索引的優(yōu)缺點
優(yōu)點:提高了查詢速度
缺點:減慢寫入速度(每次寫入得時候需要更新索引)
9.一條sql語句執(zhí)行的特別慢的原因
1)數(shù)據(jù)庫刷新ing
2)等待鎖ing
3)索引失效(沒用到鎖)
10.什么是事務(wù)
事務(wù)是一個數(shù)據(jù)庫的操作序列,這些操作要么全部執(zhí)行,要么全部不執(zhí)行,是一個不可分割的工作單位。
11.事務(wù)的ACID是什么
1)A->原子性:事務(wù)是一個原子操作單元,其對數(shù)據(jù)的修改,要么一次全都執(zhí)行成功,要么全都失敗回滾。
2)C->一致性:操作結(jié)果的正確性,最終的實際結(jié)果和程序設(shè)計預(yù)期想要得到的結(jié)果一致。
3)I->隔離性:并發(fā)執(zhí)行的各個事務(wù)之間不能互相干擾。
4)D->持久性:指一個事務(wù)一旦提交,它對數(shù)據(jù)庫中的數(shù)據(jù)的改變就應(yīng)該是永久性的。
12.事務(wù)的隔離級別要解決的問題
解決并行事務(wù)之間可能出現(xiàn)的干擾問題:
1)臟讀:事務(wù)A讀到事務(wù)B未提交的數(shù)據(jù)內(nèi)容。
2)不可重復(fù)讀:同一個事務(wù)中的兩次讀取,獲取的數(shù)據(jù)不一致,事務(wù)A在兩次讀取的中間,事務(wù)B對其數(shù)據(jù)進行了修改并提交。
3)幻讀:同一個事務(wù)根據(jù)相同的搜索條件進行查詢時獲取的數(shù)據(jù)數(shù)目不一致。事務(wù)A的兩次讀取中間,事務(wù)B新增了數(shù)據(jù)并提交完成,且符合事務(wù)A的搜索條件。
ps.不可重復(fù)讀VS幻讀
不可重復(fù)讀:事務(wù) A 多次讀取同一數(shù)據(jù),事務(wù) B 在事務(wù)A多次讀取的過程中,對數(shù)據(jù)作了更新并提交,導(dǎo)致事務(wù)A多次讀取同一數(shù)據(jù)時,結(jié)果不一致。
幻讀:系統(tǒng)管理員A將數(shù)據(jù)庫中所有學(xué)生的成績從具體分?jǐn)?shù)改為ABCDE等級,但是系統(tǒng)管理員B就在這個時候插入了一條具體分?jǐn)?shù)的記錄,當(dāng)系統(tǒng)管理員A改結(jié)束后發(fā)現(xiàn)還有一條記錄沒有改過來,就好像發(fā)生了幻覺一樣,這就叫幻讀。
小結(jié):不可重復(fù)讀的和幻讀很容易混淆,不可重復(fù)讀側(cè)重于修改,幻讀側(cè)重于新增或刪除。