mysql之存储引擎-第二篇

什么是存储引擎?

数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建,查询,更新和删除数据操作。不同的存储引擎提供了不同的存储机制,索引技巧及特定功能。

存储引擎类型

InnoDB:是事务型数据库的首先引擎,支持事务的安全表(ACID),支持行锁和外键;

MyISAM:拥有较高的插入,查询速度,但不支持事务;

MEMORY:将表中的数据存储在内存中,为查询和引用其他数据提供快速访问;

mysql支持的存储引擎

通过命令我们可以查询mysql支持的存储引擎

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.02 sec)

不同的存储引擎都有各自的特点,以适应不同的需求,mysql默认的存储引擎是InnoDB;但我们可以根据不同的需求选择不同的存储引擎;比如:

如果需要提供事务支持,并要求实现并发控制,InnoDB是一个很好的选择;

如果数据表主要是用来插入和查询记录,则可选择MyISAM提供较高的处理效率;

如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,则可以将数据保存在内存中的MEMORY引擎中;

原文地址:https://www.cnblogs.com/zzjlxy-225223/p/12791665.html