儲存引擎是什麼?
mysql中的資料用各種不同的技術儲存在檔案中,這些技術中的每一種技術都使用不同的儲存機制、索引技巧、鎖定水平並且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,額能夠獲得額外的速度或功能,改善應用功能。
1.innodb
innodb是乙個健壯的事務性儲存引擎,有行級鎖定和外來鍵約束,適用於以下場合:
更新密集的表。innodb儲存引擎適合處理多重併發的更新請求。
事務。innodb儲存引擎是支援事務的標準mysql儲存引擎。
自動災難恢復。與其他儲存引擎不同,innodb表能夠自動從災難中恢復。
外來鍵約束。mysql支援外來鍵的儲存引擎只用innodb。
支援自動增長列auto_increment屬性。
另外,從mysql5.7開始innodb就成為預設的儲存引擎。
2.myisam
myisam表是獨立於作業系統的,這說明可以輕鬆的將其從windows伺服器移植到linux伺服器。每當簡歷乙個myisam引擎的表時,就會建立三個檔案,檔名是表名,三個檔案如下:
myisam引擎不支援事務操作(當然,可以在service層根據自己的業務需求進行相應的控制),myisqm儲存引擎適合在以下情況使用:
選擇密集型的表。myisam儲存引擎在篩選大量資料時非常迅速,這是它最突出的優點
插入密集型的表。myisam的兵法插入特性允許同時選擇和插入書資料。
3.mrg_myisam
mrg_myisam儲存引擎是一組myisam表的組合,也就是說它將myisam引擎的多個表聚合起來,但是它內部沒有資料,真正的資料依然在myisam引擎的表中。
例如:同一種類的資料根據時間分為多張表儲存,這時查詢就會比較麻煩,mrg_myisam引擎可以直接將多個表聚合成乙個表統一查詢。
4.memory
memory儲存引擎的出發點是速度。為了得到最快的響應時間,採用的儲存介質是系統記憶體。雖然在記憶體中儲存表資料回提供很高的效能,但當mysqld守護程序崩潰時,所有的memory資料都會丟失。另外,它要求儲存在資料表中的資料使用的是長度不變的格式,這意味著不能使用blob和text這樣的長度可變的資料型別,varchar是一種長度可變的型別,但因為它在mysql內部當作長度固定不變的char型別,所以可以使用。
使用mymory儲存引擎的場景:
目標資料較小,而且被經常頻繁的訪問。在記憶體中存放資料,過太大的資料可能造成記憶體溢位,可以通過引數max_heap_table_size控制memory表的大小,限制表的最大大小。
如果資料是臨時的,而且要求必須立即可用,那麼可以放在記憶體中。
儲存在memory表中的資料如果突然丟失,不會對伺服器產生實質的負面影響。
5.csv
csv儲存引擎是csv格式檔案儲存資料。
因為csv檔案可以被office等軟體直接編輯,可能會出現不規則的情況,若出現csv檔案中內容損壞的情況,可以使用check table或repair table名零零檢查和修復。
6.archive
archive是歸檔的意思,僅僅支援插入和查詢兩種操作,在mysql5.5以後支援索引功能,有很好的壓縮機制,在記錄請求時進行實時壓縮,所以經常被當作倉庫來使用。適合儲存大量的獨立的作為歷史紀錄的資料,擁有很高的插入速度但是對查詢的支援比較差。
7.blackhole
黑洞儲存引擎,所有插入的資料不會儲存,boackhole引擎表永遠保持為空。伺服器會記錄下blackhole表的日誌,所以可以用於複製資料到備份資料庫。
8.performance_schema
主要用於收集資料庫伺服器的效能引數。mysql使用者不能建立儲存引擎為performance_schema的表。
他提供了以下的功能:
9.其他
當然還有其它一些儲存引擎,如federated、oqgraph、sphinxse、tokudb、cassandra、connect、squence等。
不同的儲存引擎有各自的特點,根據實際情況選擇合適的儲存引擎,其對比如下圖所示:
檢視支援的儲存引擎:
show engines;檢視mysql儲存引擎系統變數:show engines\g;
修改資料庫引擎:
方式一:
修改配置檔案my.ini,在[mysqld]後面新增default-storage-engine=innodb,重啟服務,將資料庫預設引擎修改為innodb。
方式二:
在建表是指定儲存引擎:
指定test表的儲存引擎為myisam。
方式三:
建表後更改:
更改該錶的儲存引擎為innodb。
檢視表使用的儲存引擎:
該如何選擇合適的儲存引擎呢?提供以下幾個選擇的標準,實際情況靈活選擇:
是否需要支援事務
是否需要使用熱備
崩潰恢復,能否接收崩潰
是否需要外來鍵支援
儲存的限制
對索引和快取的支援
mysql儲存引擎 mysql儲存引擎簡介
精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...
mysql個儲存引擎 MySQL儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 儲存引擎 其實就是指定表如何儲存資料,如何為儲存的資料建立索引以及如何更新 查詢資料等技術實現的方法...
mysql儲存引擎模式 mysql儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 一 儲存引擎 儲存引擎 其實就是指定 表 如何儲存資料,如何為儲存的資料 建立索引以及 如何更新,查...