關係型資料庫和非關係型資料庫的區別
簡單來說:
1.關係型資料庫通過外來鍵關聯來建立表與表之間的關係
2.非關係型資料庫通常指資料以物件的形式儲存在資料庫中,而物件之間的關係通過每個物件自身的屬性來決定
比如 有乙個學生的資料:
姓名:張三,性別:男,學號:12345,班級:二年級一班
還有乙個班級的資料:
班級:二年級一班,班主任:李四
關係型資料庫中,我們建立學生表和班級表來存這兩條資料,並且學生表中的班級儲存的是班級表中的主鍵。
非關係型資料庫中,我們建立兩個物件,乙個是學生物件,乙個是班級物件
如何設計乙個關係型資料庫
乙個合格的rdbms(relational database management system, 關係型資料庫管理系統
)應該包含下面幾個內容:
總結如下
為什麼要使用索引
索引是對某個字段進行排序的一種方式。對資料庫表中乙個或多個列(例如,employee 表的姓氏 (lname) 列)的值進行排序的結構。簡單粗暴的說,你可以認為索引就是一棵b+tree
如果我們使用全表掃瞄
的方式,將整張表的資料都一起載入到記憶體中,然後一塊一塊(資料庫的儲存及載入單位是資料塊或者資料頁
)得掃瞄資料,當資料量小的時候很快,但是當資料量非常大的時候,會極其緩慢,記憶體壓力也賊大.
索引就是為了解決全表掃瞄在資料量很大的情況下效率很低而產生的,其靈感來自於字典,可以根據偏旁部首這些去很快地查到我們想要的字詞所在的頁面進而查詢到我們想要的字詞,而這些關鍵資訊以及根據關鍵字查詢資料的方式便組成了我們的索引
所以,使用索引的原因:通過索引,可以較少全表掃瞄的次數,大幅度地提公升查詢資料的速度.
什麼樣的資訊可以成為索引
肯定是那種可以把資料限定在某一範圍的字段啦哈哈哈哈
主鍵當然首當其衝,肯定可以,唯一鍵以及普通鍵也可以,能起到那種作用都可以.
索引的資料結構
資料庫考點 4
如何定位並優化慢查詢sql 慢查詢語句只會是dml,資料操作語言 這個問題屬於開放性的題目,具體場景需要具體分析,這裡給個大致思路 根據慢日誌定位慢查詢sql.使用explain等工具分析sql.修改sql或者盡量讓sql走索引.1.根據慢日誌定位慢查詢sql 慢日誌的作用就是用來記錄執行速度比較慢...
資料庫考點 6
myisam和innodb關於鎖方面的區別是什麼 myisam預設使用的是表級鎖,不支援行級鎖.innodb預設使用的是行級鎖,也支援表級鎖.下面的東西針對於myisam引擎 什麼是表級鎖 舉例 前提 我當前有一張表student,使用的是myisam引擎.我們在這裡模擬乙個併發操作哈 當我們對錶進...
資料庫考點 10
next key鎖 行鎖 gap鎖 行鎖 行鎖 即record lock,指對單個行記錄上的鎖.gap鎖 gap lock 間隙鎖 表示鎖定乙個範圍,但不包括記錄本身.其主要目的是為了防止同一事務的兩次當前讀出現幻讀的情況.它在rc及ru隔離級別中是沒有的,在rr以及序列化中預設支援,這就是為啥rc...