存储引擎
<1> 查询系统中支持的存储引擎
mysql> SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
注 : <1> Engine属性指存储引擎名称,Support属性指是否支持该类型YES表示支持NO表示不支持DEFAULT表示默认,Comment属性指对该引擎的评论,Transactions属性指是否支持事务处理,XA属性指是否分布式处理XA规范,Savepoints属性指是否支持保存点以便回滚到保存点
<2> 一般使用默认 InnoDB 就可以
常用的存储引擎
特性
|
InnoDB
|
MyISAM
|
MEMORY
|
事务安全 | 支持 | 无 | 无 |
存储限制 | 64TB | 有 | 有 |
空间使用 | 高 | 低 | 低 |
内存使用 | 高 | 低 | 高 |
插入数据的速度 | 低 | 高 | 高 |
对外键的支持 | 支持 | 无 | 无 |
1> MyISAM : MyISAM引擎是MySQL 5.1及之前版本的默认引擎,它的特点是 :
<1> 不支持行锁,读取时对需要读到的所有表加锁,写入时则对表加排它锁
<2> 不支持事务
<3> 不支持外键
<4> 不支持崩溃后的安全恢复
<5> 在表有读取查询的同时,支持往表中插入新纪录
<6> 支持 BLOB 和 TEXT 的前500个字符索引,支持全文索引
<7> 支持延迟更新索引,极大提升写入性能
<8> 对于不会进行修改的表,支持压缩表,极大减少磁盘空间占用
2> InnoDB : InnoDB 在 MySQL 5.5 后成为默认索引,它的特点是 :
<1> 支持行锁,采用 MVCC 来支持高并发
<2> 支持事务
<3> 支持外键
<4> 支持崩溃后的安全恢复
<5> 不支持全文索引
MyISAM 适合 SELECT密集型的表,而 InnoDB 适合 INSERT 和 UPDATE 密集型的表