1. 程式人生 > 實用技巧 >(pytorch-深度學習系列)pytorch實現自定義網路層,並自設定前向傳播路徑-學習筆記

(pytorch-深度學習系列)pytorch實現自定義網路層,並自設定前向傳播路徑-學習筆記

msyql資料庫儲存引擎

資料庫管理系統(DBMS)使用資料引擎進行建立、查詢、更新和刪除資料。不同的儲存引擎提供不同的儲存機制、索引技巧、鎖定水平等功能,使用不同的儲存引擎,還可以獲得特定的功能。

InnoDB儲存引擎

InnoDB是事務型資料庫的首選引擎,是目前MYSQL的預設事務型引擎,支援事務安全表(ACID),支援行鎖定和外來鍵。

如果需要頻繁的更新、刪除操作的資料庫,也可以選擇InnoDB,因為支援事務的提交(commit)和回滾(rollback)。

MyISAM儲存引擎

MyISAM擁有較高的插入、查詢速度,但不支援事物和外來鍵。

還有:MEMORY儲存引擎、MERGE儲存引擎

儲存引擎特性

mysql索引

索引是一種高效獲取資料的儲存結構,索引是對資料庫表中一列或多列的值進行排序的一種結構。索引大大減少了儲存引擎需要掃描的資料量。
索引也不是越多越好,一方面它會佔用儲存空間,另一方面它會使得寫操作變得很慢。通常我們對查詢次數比較頻繁,值比較多的列才建索引。

索引優點:
第一,通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。
第二,可以大大加快 資料的檢索速度,這也是建立索引的最主要的原因。
第三,可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。
第四,在使用分組和排序子句進行資料檢索時,同樣可以顯著減少查詢中分組和排序的時間。
第五,通過使用索引,可以在查詢的過程中,使用優化隱藏器,提高系統的效能。

索引缺點:
第一,建立索引和維護索引要耗費時間,這種時間隨著資料量的增加而增加。
第二,索引需要佔物理空間,除了資料表佔資料空間之外,每一個索引還要佔一定的物理空間,如果要建立聚簇索引,那麼需要的空間就會更大。
第三,當對錶中的資料進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了資料的維護速度。

MySQL B+樹索引和Hash索引的區別

B+樹是一個平衡的多叉樹。B+樹從根節點到葉子節點的搜尋效率基本相當,不會出現大幅波動。

雜湊索引採用一定的雜湊演算法,把鍵值換成新的雜湊值,檢索時不需要類似B+樹那樣從根節點逐級查詢,只需一次雜湊演算法即可立刻定位到相應的位置。

因為Hash索引比較的是經過Hash計算的值,所以只能進行等式比較,不能用於範圍查詢。

聯合索引、最左字首匹配

MySQL索引查詢會遵循最左字首匹配的原則,即最左優先,在檢索資料時從聯合索引的最左邊開始匹配。所以當我們建立一個聯合索引的時候,如(key1,key2,key3),相當於建立了(key1)、(key1,key2)和(key1,key2,key3)三個索引,這就是最左匹配原則

資料庫四大特性和隔離級別

資料庫四大特性

  1. 原子性
  2. 一致性
  3. 隔離性
  4. 永續性

資料庫的隔離級別

沒有資料庫隔離性的情況下,多使用者併發操作可能會發生的問題。

  1. 髒讀:髒讀是指一個事務讀取了未提交事務執行過程中的資料。
  2. 不可重複讀:對於資料庫中的某個資料,一個事務執行過程中多次查詢返回不同查詢結果,這就是在事務執行過程中,資料被其他事務提交修改了。不可重複讀同髒讀的區別在於,髒讀是一個事務讀取了另一未完成的事務執行過程中的資料,而不可重複讀是一個事務執行過程中,另一事務提交併修改了當前事務正在讀取的資料。
  3. 幻讀:幻讀是事務非獨立執行時發生的一種現象,例如事務T1批量對一個表中某一列列值為1的資料修改為2的變更,但是在這時,事務T2對這張表插入了一條列值為1的資料,並完成提交。此時,如果事務T1檢視剛剛完成操作的資料,發現還有一條列值為1的資料沒有進行修改,而這條資料其實是T2剛剛提交插入的,這就是幻讀。

MySQL定義了四種隔離級別解決

  1. 可重複讀
  2. 讀取提交內容
  3. 讀取未提交內容
  4. 可序列化

在這裡插入圖片描述
參考:資料庫四大特性及資料庫隔離級別

參考:資料庫的鎖機制及原理