MySQL高階 Mysql資料庫儲存引擎簡介

2021-10-18 07:43:23 字數 1484 閱讀 2332

innodb儲存引擎

innodb是mysql的預設事務型引擎,它被設計用來處理大量的短期(short-lived)事務。除非有非常特別的原因需要使用其他的儲存引擎,否則應該優先考慮innodb引擎。行級鎖,適合高併發情況

myisam儲存引擎

myisam提供了大量的特性,包括全文索引、壓縮、空間函式(gis)等,但myisam不支援事務和行級鎖(myisam改表時會將整個表全鎖住),有乙個毫無疑問的缺陷就是崩潰後無法安全恢復。

archive引擎

archive儲存引擎只支援insert和select操作,在mysql5.1之前不支援索引。

archive表適合日誌和資料採集類應用。適合低訪問量大資料等情況。

根據英文的測試結論來看,archive錶比myisam表要小大約75%,比支援事務處理的innodb錶小大約83%。

blackhole引擎

blackhole引擎沒有實現任何儲存機制,它會丟棄所有插入的資料,不做任何儲存。但伺服器會記錄blackhole表的日誌,所以可以用於複製資料到備庫,或者簡單地記錄到日誌。但這種應用方式會碰到很多問題,因此並不推薦。

csv引擎

csv引擎可以將普通的csv檔案作為mysql的表來處理,但不支援索引。

csv引擎可以作為一種資料交換的機制,非常有用。

csv儲存的資料直接可以在作業系統裡,用文字編輯器,或者excel讀取。

memory引擎

如果需要快速地訪問資料,並且這些資料不會被修改,重啟以後丟失也沒有關係,那麼使用memory表是非常有用。memory表至少比myisam表要快乙個數量級。(使用專業的記憶體資料庫更快,如redis)

federated引擎

federated引擎是訪問其他mysql伺服器的乙個**,儘管該引擎看起來提供了一種很好的跨伺服器的靈活性,但也經常帶來問題,因此預設是禁用的。

注:innodb 主鍵為聚簇索引,基於聚簇索引的增刪改查效率非常高。

對比項myisam

innodb

主外來鍵不支援

支援事務

不支援支援

樹結構myisam 索引使用 b-tree

innodb索引使用 b+ tree

行表鎖表鎖,即使操作一條記錄也會鎖住整個表,不適合高併發的操作

行鎖,操作時只鎖某一行,不對其它行有影響,適合高併發的操作

快取只快取索引,不快取真實資料

不僅快取索引還要快取真實資料,對記憶體要求較高,而且記憶體大小對效能有決定性的影響

表空間小

大關注點

效能事務

預設安裝是是

使用者表預設使用否是

自帶系統表使用是否

mysql資料庫高階 mysql資料庫高階

一 索引 索引,是資料庫中專門用於幫助使用者快速查詢資料的一種資料結構。類似於字典中的目錄,查詢字典內容時可以根據目錄查詢到資料的存放位置,然後直接獲取即可。分類 普通索引 唯一索引 全文索引 組合索引 主鍵索引 1 普通索引 普通索引僅有乙個功能 加速查詢 建立表時建立索引 create tabl...

mysql高階操作 MySQL資料庫的高階操作

1.資料備份與還原 1 備份 mysqldump mysqldump u username p password dbname tbname1 tbname2.filename.sql mysqldump u root p mydb2 c mysql dump mydb2 dump.sql 2 恢復...

mysql 高階 資料庫鎖

是什麼?鎖是計算機協調多個程序或執行緒併發訪問某一資源的機制。在資料庫中,除傳統的計算機資源的徵用以外,資料也是一種供許多使用者共享的資源。如何保證資料併發訪問的一致性 有效性是所有資料庫必須解決的乙個問題,鎖衝突也是影響資料庫併發訪問效能的乙個重要因素。從這個角度來說,鎖對資料庫極為重要。鎖的分類...