当前位置: 移动技术网 > IT编程>数据库>Mysql > MySQL 支持的存储引擎

MySQL 支持的存储引擎

2020年04月03日  | 移动技术网IT编程  | 我要评论

参考资料:

存储引擎:

数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。

不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。

注: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表示该引擎为当前默认的存储引擎。

transactions列的值表示是否支持事务,yes表示支持,no表示不支持。


在 mysql 中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。

主要的几种引擎的区别:

功能mylsammemoryinnodbarchive
存储限制 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 存储引擎:

  • 如果要提供提交、回滚和恢复的事务安全(acid 兼容)能力,并要求实现并发控制,innodb 是一个很好的选择。
  • 如果数据表主要用来插入和查询记录,则 myisam 引擎提供较高的处理效率。
  • 如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存的 memory 引擎中,mysql 中使用该引擎作为临时表,存放查询的中间结果。
  • 如果只有 insert 和 select 操作,可以选择archive 引擎,archive 存储引擎支持高并发的插入操作,但是本身并不是事务安全的。archive 存储引擎非常适合存储归档数据,如记录日志信息可以使用 archive 引擎。

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网