要知道儲存引擎這個東西,不是儲存的意思,而是io操作。
mysql中的資料用各種不同的技術儲存在檔案(或者記憶體)中。這些技術中的每一種技術都使用不同的儲存機制、索引技巧、鎖定水平並且最終提供廣泛的不同的功能和能力。
通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。
看到了吧,是這個意思的。
下面是一些儲存引擎:
myisam: 擁有較高的插入,查詢速度,但不支援事務
innodb :5.5版本後mysql的預設資料庫,事務型資料庫的首選引擎,支援acid事務,支援行級鎖定
bdb: 源自berkeley db,事務型資料庫的另一種選擇,支援commit和rollback等其他事務特性
memory :所有資料置於記憶體的儲存引擎,擁有極高的插入,更新和查詢效率。但是會占用和資料量成正比的記憶體空間。並且其內容會在mysql重新啟動時丟失
merge :將一定數量的myisam表聯合而成乙個整體,在超大規模資料儲存時很有用
archive :非常適合儲存大量的獨立的,作為歷史記錄的資料。因為它們不經常被讀取。archive擁有高效的插入速度,但其對查詢的支援相對較差
federated: 將不同的mysql伺服器聯合起來,邏輯上組成乙個完整的資料庫。非常適合分布式應用
cluster/ndb :高冗餘的儲存引擎,用多台資料機器聯合提供服務以提高整體效能和安全性。適合資料量大,安全和效能要求高的應用
blackhole :黑洞引擎,寫入的任何資料都會消失,一般用於記錄binlog做複製的中繼
一般來說我們只需要學習innodb:
innodb
innodb是乙個健壯的事務型儲存引擎,這種儲存引擎已經被很多網際網路公司使用,為使用者操作非常大的資料儲存提供了乙個強大的解決方案。我的電腦上安裝的mysql 5.6.13版,innodb就是作為預設的儲存引擎。innodb還引入了行級鎖定和外來鍵約束,在以下場合下,使用innodb是最理想的選擇:
1.更新密集的表。innodb儲存引擎特別適合處理多重併發的更新請求。
2.事務。innodb儲存引擎是支援事務的標準mysql儲存引擎。
3.自動災難恢復。與其它儲存引擎不同,innodb表能夠自動從災難中恢復。
4.外來鍵約束。mysql支援外來鍵的儲存引擎只有innodb。
5.支援自動增加列auto_increment屬性。
一般來說,如果需要事務支援,並且有較高的併發讀取頻率,innodb是不錯的選擇。
為什麼innodb比較出名呢?因為現在是網際網路時代,然後innodb儲存引擎特別適合處理多重併發的更新請求。
支援事務,非常符合業務邏輯。
自動災難恢復,使我們的回覆更簡單。
有外來鍵,關係型資料庫。
支援自動增加列auto_increment屬性,就是自動增長。
推薦:mysql技術內幕:innodb儲存引擎
mysql (三)儲存引擎
mysql有多種儲存引擎,myisam和innodb是其中常用的兩種。這裡介紹關於這兩種引擎的一些基本概念 非深入介紹 myisam是mysql的預設儲存引擎,基於傳統的isam型別,支援全文搜尋,但不是事務安全的,而且不支援外來鍵。每張myisam表存放在三個檔案中 frm 檔案存放 定義 資料檔...
MySQL 儲存引擎(三)
儲存索引的區別 innodb和myisam儲存引擎的區別 聯機事務處理主要是基本的日常的事務處理 如銀行交易 聯機分析處理是資料倉儲系統的主要應用 支援複雜的分析操作 並提供直觀易懂的查詢結果 儲存引擎支援事務 支援外來鍵 支援非鎖定讀 行鎖設計 採用的是聚集的方式儲存 所以每張表的儲存按主鍵順序存...
mysql三 儲存引擎
mysql中建立的庫 資料夾 庫中建立的表 檔案 資料庫中的表也應該有不同的型別,表的型別不同,會對應mysql不同的訪問機制,表型別又稱為儲存引擎。儲存引擎說白了就是如何儲存資料 如何為儲存的資料建立索引和如何更新 查詢資料等技術的實現方 法。因為在關聯式資料庫中資料的儲存是以表的形式儲存的,所以...