标签:
和大多数数据库不同,在MySQL中存在一个存储引擎的概念,针对不同的存储需求可以选择最优的存储引擎。
一、MySQL存储引擎概述
插件式存储引擎是MySQL数据库最重要的特征之一,用户可以根据应用的需要寻找如何存储和索引数据、是否使用事务等。MySQL默认支持多种存储引擎,以适用于不同领域的数据库应用需求,用户可以通过选择选择不同的存储引擎提供应用的效率,提供灵活的存储,用户甚至可以按照自己的需要定制和使用自己的存储引擎,以实现最大程度的可定制性。
MySQL支持的存储引擎包括MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CVS、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。
默认情况下,创建表时未指定表的存储引擎,则该表使用默认的存储引擎。如果需要修改默认的存储引擎,则可以在参数文件中设置defalut-table-type。查看当前的默认存储引擎,可以使用如下命令:
show variables like ‘table_type‘;
可以通过下列两种方法查询当前数据库支持的存储引擎:
mysql> show engines; mysql> show variables like ‘have%‘;
在创建表时,可以通过增加ENGINE关键字设置表的存储引擎:
CREATE TABLE table_name1( ... ) ENGINE=MyISAM; CREATE TABLE table_name2( ... ) ENGINE=InnoDB;
也可以通过ALTER TABLE语句将一个已经存在的表修改成其他的存储引擎:
alter table table_name ENGINE=innodb;
二、MySQL中各类存储引擎的特征见下表:
特点 | MyISAM | InnoDB | Memory | Merge | NDB |
存储限制 | 有 | 64TB | 有 | 没有 | 有 |
事务安全 | 支持 | ||||
锁机制 | 表锁 | 行锁 | 表锁 | 表锁 | 行锁 |
B树索引 | 支持 | 支持 | 支持 | 支持 | 支持 |
哈希索引 | 支持 | 支持 | |||
全文索引 | 支持 | ||||
集群索引 | 支持 | ||||
数据缓存 | 支持 | 支持 | 支持 | ||
索引缓存 | 支持 | 支持 | 支持 | 支持 | 支持 |
数据可压缩 | 支持 | ||||
空间使用 | 低 | 高 | 低 | 低 | |
内存使用 | 低 | 高 | 中 | 低 | 高 |
批量插入速度 | 高 | 低 | 高 | 高 | 高 |
支持外键 | 支持 |
标签:
原文地址:http://www.cnblogs.com/magnes/p/5613318.html