滲透之burp+夜神模擬器+proxifier APP抓包
阿新 • • 發佈:2022-01-07
資料庫的三大正規化
第一正規化
:每個列都不可以再拆分第二正規化
:在第一正規化的基礎上,非主鍵列完全依賴於主鍵第三正規化
:在第二正規化上,非主鍵列只依賴主鍵,不依賴其他非主鍵
事務的併發問題
髒讀
:事務A讀取了事務B更新的資料,然後資料B回滾,那麼A讀到的是髒資料不可重複讀
:事務A多次讀取同一資料,事務B在事務A讀取的過程中對資料進行了修改並提交,導致A多次讀的資料不一樣幻讀
:事務A讀取資料的時候,事務B增添了資料,導致A讀完後發現還有資料沒讀- 不可重複讀側重於修改,幻讀側重於新增或刪除
- 解決不可重複讀只需要鎖行,而解決幻讀需要鎖表
事務的隔離級別
事務隔離級別 | 髒讀 | 不可重複讀 |
---|---|---|
讀未提交 | 是 | 是 |
不可重複讀 | 否 | 是 |
可重複讀 | 否 | 否 |
序列化 | 否 | 否 |
b-tree、b+tree的區別
- b-tree的關鍵字、索引和記錄是放在一起的
- b+tree的記錄只放在葉子節點中,而非葉子節點中只有關鍵字和指向下一個節點的索引
- b-tree中越靠近根節點的記錄查詢事件越快,只要找到關鍵字即可確定記錄的存在
- b+tree中每個記錄的查詢事件基本一樣,都需要從根節點走到葉子節點
- b+tree的磁碟讀寫代價更低,查詢效率更加穩定,b+tree更適合建索引
drop、delete、truncate的區別
- 不需要再用一張表時直接用drop刪除
- 刪除所有資料,但是保留表結構用truncate
- 想刪除部分資料的時候用delete
union和union all的區別
- union會多獲取的資料進行去重和排序
- union all會保留所有查詢結果,並不會進行去重和排序
- 在不去重的前提下,union all的效率要高一些
char和varchar的區別
- char,定長,固定長度的字串推薦使用char型別儲存,節省空間且效率高
- varchar,不定長,效率低
欄位為什麼要定義成not null
- null值會佔用更多的位元組,且會在程式中造成很多不符合預期的情況