存储引擎——概述|| 各种存储引擎的特性(InnoDB||MyISAM||MEMORY||MERGE) ||存储引擎的选择
存儲引擎概述
和大多數的數據庫不同, MySQL中有一個存儲引擎的概念,
針對不同的存儲需求可以選擇最優的存儲引擎。
存儲引擎就是存儲數據,建立索引,更新查詢數據等等技術的實現方式。
存儲引擎是基于表的,而不是基于庫的。所以存儲引擎也可被稱為表類型。
Oracle,SqlServer等數據庫只有一種存儲引擎。
MySQL提供了插件式的存儲引擎架構。所以MySQL存在多種存儲引擎,可以根據需要使用相應引擎,或者編寫存儲引擎。
MySQL5.0支持的存儲引擎包含: InnoDB 、MyISAM 、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,
其中InnoDB和BDB提供事務安全表,其他存儲引擎是非事務安全表。
可以通過指定 show engines ,來查詢當前數據庫支持的存儲引擎:
創建新表時如果不指定存儲引擎,那么系統就會使用默認的存儲引擎,
MySQL5.5之前的默認存儲引擎是MyISAM,
5.5之后就改為了InnoDB。
查看Mysql數據庫默認的存儲引擎,指令:
各種存儲引擎特性
下面重點介紹幾種常用的存儲引擎,并對比各個存儲引擎之間的區別,如下表所示:
最常使用的兩種存儲引擎: InnoDB、MyISAM ,另外兩種 MEMORY、MERGE ,了解即可。
各種存儲引擎的特性
InnoDB
InnoDB存儲引擎是Mysql的默認存儲引擎。
InnoDB存儲引擎提供了具有提交、回滾、崩潰恢復能力的事務安全。
但是對比MyISAM的存儲引擎,InnoDB寫的處理效率差一些,并且會占用更多的磁盤空間以保留數據和索引。
InnoDB存儲引擎不同于其他存儲引擎的特點:
事務控制
?????
MyISAM
MyISAM 不支持事務、也不支持外鍵,
其優勢是訪問的速度快,對事務的完整性沒有要求或者以SELECT、INSERT為主的應用基本上都可以使用這個引擎來創建表。
有以下兩個比較重要的特點:
MEMORY
MERGE
4). 往order_all中插入一條記錄,由于在MERGE表定義時,INSERT_METHOD 選擇的是LAST,那么插入的數據會想最后一張表中插入。
存儲引擎的選擇
總結
以上是生活随笔為你收集整理的存储引擎——概述|| 各种存储引擎的特性(InnoDB||MyISAM||MEMORY||MERGE) ||存储引擎的选择的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql的体系结构概览
- 下一篇: 优化SQL步骤——查看SQL执行频率 |