[翻译] MySQL 8.0 官方文档

[翻译] MySQL 之 InnoDB 特性和最佳实践

2020-03-13  本文已影响0人  猿来是八阿哥
mysql

官方文档:15.1 Introduction to InnoDB

一、MySQL 之 InnoDB 总体介绍

InnoDB 是 MySQL 中一个平衡了 高可用搞性能 的通用存储引擎。在 MySQL 8.0 中,除非通过 my.cnf 配置了默认的存储引擎,或者在 CREATE TABLE 语句中显式的通过 ENGINE=xxx 指定了别的存储引擎,InnoDB 将作为 MySQL 的默认存储引擎。

1. InnoDB 的明显优势
2. InnoDB 具体特性
特性 是否支持
B-Tree 索引 支持
server层的备份和事实恢复 (point-in-time recovery) 支持
数据库集群 不支持
聚簇索引(clustered index) 支持
压缩数据 支持
数据缓存 支持
server层的数据加密 支持
外键限制 支持
全文索引 (fulltext index) 5.6后支持
空间索引 (Geospatial index) 5.7后支持
Hash索引 不支持
索引缓存 支持
锁粒度
MVCC(Multi-Version Concurrency Controll)多版本并发控制 支持
server层的复制(replication) 支持
存储限制 64TB
T-Tree 索引 不支持
事务 支持
数据字典的更新统计 支持

二、表使用 InnoDB 的好处

表使用 InnoDB 存储引擎的好处有:

三、InnoDB 表的最佳实践

InnoDB 表的最佳实践包含:

四、确认 InnoDB 是否是默认的存储引擎

可以通过 show engines; 或者 SELECT * FROM INFORMATION_SCHEMA.ENGINES; 来查看 InnoDB 是否是默认的存储引擎。注意 InnoDB 那行的 default 字样。

mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | 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         |
| CSV                | YES     | CSV storage engine                                             | 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)

mysql> select * from INFORMATION_SCHEMA.ENGINES;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| ENGINE             | SUPPORT | COMMENT                                                        | TRANSACTIONS | XA   | SAVEPOINTS |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | 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         |
| CSV                | YES     | CSV storage engine                                             | 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)

五、找个表测试一下 InnoDB

上一篇下一篇

猜你喜欢

热点阅读