1. 程式人生 > 其它 >滲透之burp+夜神模擬器+proxifier APP抓包

滲透之burp+夜神模擬器+proxifier APP抓包

資料庫的三大正規化

  • 第一正規化:每個列都不可以再拆分
  • 第二正規化:在第一正規化的基礎上,非主鍵列完全依賴於主鍵
  • 第三正規化:在第二正規化上,非主鍵列只依賴主鍵,不依賴其他非主鍵

事務的併發問題

  • 髒讀:事務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值會佔用更多的位元組,且會在程式中造成很多不符合預期的情況