参考资料:C语言中文网mysql
存储引擎:sql
数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行建立、查询、更新和删除数据操做。数据库
不一样的存储引擎提供不一样的存储机制、索引技巧、锁定水平等功能,使用不一样的存储引擎还能够得到特定的功能。缓存
注:InnoDB 事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键。MySQL 5.5.5 以后,InnoDB 做为默认存储引擎。安全
MySQL v5.7支持的存储引擎:服务器
显示可用的数据库引擎和默认引擎的语句:并发
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)
Support 列的值表示某种引擎是否能使用,YES
表示能够使用,NO
表示不能使用,DEFAULT
表示该引擎为当前默认的存储引擎。app
Transactions列的值表示是否支持事务,Yes表示支持,NO表示不支持。ide
在 MySQL 中,不须要在整个服务器中使用同一种存储引擎,针对具体的要求,能够对每个表使用不一样的存储引擎。高并发
主要的几种引擎的区别:
功能 | MylSAM | MEMORY | InnoDB | Archive |
---|---|---|---|---|
存储限制 | 256TB | RAM | 64TB | None |
支持事务 | No | No | Yes | No |
支持全文索引 | Yes | No | No | No |
支持树索引 | Yes | Yes | Yes | No |
支持哈希索引 | No | Yes | No | No |
支持数据缓存 | No | N/A | Yes | No |
支持外键 | No | No | Yes | No |
能够根据如下的原则来选择 MySQL 存储引擎: