(一)存储引擎查看
mysql支持多种存储引擎,在处理不同类型的应用时,可以通过选择使用不同的存储引
擎提高应用的效率,或者提供灵活的存储。
mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、
ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引
擎都是非事务安全表。
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
最常使用的2 种存储引擎:
1. Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默
认使用Myisam。
每个MyISAM在磁盘上存储成三个文件。文件名都和表名相同,扩展名分别是.frm
(存储表定义)、.MYD (MYData,存储数据)、.MYI (MYIndex,存储索引)。数据文件和
索引文件可以放置在不同的目录,平均分布io,获得更快的速度。
2. InnoDB 存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam
的存储引擎,InnoDB 写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索
引。
(1)查看默认的存储引擎:
mysql> show variables like '%storage_engine%';
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| default_storage_engine | InnoDB |
| storage_engine | InnoDB |
+------------------------+--------+
2 rows in set (0.01 sec)
mysql>
(二)各类 存储引擎的选择:
选择标准: 根据应用特点选择合适的存储引擎,对于复杂的应用系统可以根据实际情况选择
多种存储引擎进行组合.
下面是常用存储引擎的适用环境:
1. MyISAM:默认的MySQL 插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常
使用的存储引擎之一
2. InnoDB:用于事务处理应用程序,具有众多特性,包括ACID 事务支持。
3. Memory:将所有数据保存在RAM 中,在需要快速查找引用和其他类似数据的环境下,可
提供极快的访问。
4. Merge:允许MySQL DBA 或开发人员将一系列等同的MyISAM 表以逻辑方式组合在一起,
并作为1 个对象引用它们。对于诸如数据仓储等VLDB 环境十分适合。