存储引擎(一)
1.Mysql上支持的存储引擎
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
2. 存储引擎的概念
用来处理数据库的相关CRUD操作
每个数据库都有存储引擎,只是MySQL比较强调存储引擎的概念。
3. MySQL存储引擎
- 官方存储引擎
- MyISAM
InnoDB
– 推荐;其他引擎已经体停止维护和开发- Memory
- Federated
- CSV
- Archive
- 第三方存储引擎
- TokuDB – 开源,适合插入密集型
- InfoBright – 商业,开源版本有数据量限制。属于列存储,面向OLAP场景
- Spider
第三方存储引擎在特定场合下比较适合,除此之外,都应该使用InnoDB
3. 存储引擎之MyISAM
- MySQL5.1版本之前的默认存储引擎
- 堆表数据结构
- 表锁设计
- 支持数据静态压缩
- 不支持事物
- 数据容易丢失
- 索引容易损坏
- 唯一优点
- 数据文件可以直接拷贝到另一台服务器使用
现在MySQL中还有用MyISAM的表,主要是历史原因。数据库文件以
MY
开头的基本都是MyISAM的表