mysql中支援多種儲存引擎:myisam,innodb,mrg_myisam, memory, blackhole, csv, performance_schema, archive, federated
首先要明確的是,儲存引擎跟mysql服務的實現沒有關係,各種引擎是以外掛程式的形式存在於mysql中的。儲存引擎其實是對於表來講的,但是開發中通常不會每個表使用單獨的引擎。
mysql5.5以及之前版本中的預設儲存引擎
這種儲存引擎下建表時會建立3個檔案。分別是(.frm, .myd, .myi).frm是 表結構,.myd 就是表裡面的資料,.myd儲存索引
1.不支援事務的儲存引擎型別。
2.鎖的粒度是表級鎖。
3.引擎下回記錄表的行數,也就是select conut(*)是可以直接返回乙個已經存好的值,不必做全表掃瞄。
從這些特點看,這種儲存引擎適用於插入,查詢為主的業務,高併發下效能很低。
mysql5.5後的預設引擎
1.支援事務以及acid特性。
2.鎖的粒度是行級鎖。
3.不會記錄記錄行數,也就是count(*)會導致掃瞄全表
4.支援外來鍵約束
5. 支援自動增加列屬性auto_increment
與myisam引擎相比,這種引擎就是用於併發較高的場景業務,具有較好的事務安全性。
memory 採用的方案式使用記憶體當儲存介質,優點式響應速度快。但儲存到記憶體上也導致了乙個致命的問題就是當mysql程序崩潰的時資料會丟失。此外memory對儲存的資料有一定的要求,要求儲存的是長度不變的資料。
memory索引支援
雜湊索引:雜湊索引的使用場景是資料查詢時使用 == 匹配,但範圍查詢(<=, >=, <, >)較慢
b樹索引:b樹索引可以使用部分查詢和通配查詢,範圍查詢較快
memory使用場景:
1、資料量小、訪問非常頻繁、在記憶體中存放資料,資料量過大會導致記憶體溢位。可以通過引數max_heap_table_size控制memory表的大小,限制memory表的最大的大小。
2、資料是臨時資料,而且立即可用到。那麼就比較合適存放在記憶體中。
3、儲存在表中的資料如果丟失也沒太大關係,不會造成損失。
mysql儲存引擎 mysql儲存引擎簡介
精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...
mysql個儲存引擎 MySQL儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 儲存引擎 其實就是指定表如何儲存資料,如何為儲存的資料建立索引以及如何更新 查詢資料等技術實現的方法...
mysql儲存引擎模式 mysql儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 一 儲存引擎 儲存引擎 其實就是指定 表 如何儲存資料,如何為儲存的資料 建立索引以及 如何更新,查...