参考资料:
存储引擎:
数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。
不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。
注: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 中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。
主要的几种引擎的区别:
功能 | 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 存储引擎:
如对本文有疑问, 点击进行留言回复!!
MySQL Innodb 存储结构 和 存储Null值 用法详解
网友评论