在mysql中,引擎意味着什么?

s3fp2yjn  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(377)

我有一个简单的“人物”表:

mysql> desc people;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int          | NO   | PRI | NULL    |       |
| name  | varchar(255) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

当我这么做的时候 show create table people; 命令,它显示了创建表的整个命令:

mysql> show create table people;
+--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table  | Create Table                                                                                                                                                             |
+--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| people | CREATE TABLE `people` (
  `id` int NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

在这个命令里,我看到一个句子 ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci .
问题是:这是什么意思?特别是,你觉得呢 ENGINE=InnoDB 什么意思?

rsaldnfx

rsaldnfx1#

innodb是mysql中的一个存储引擎。如文件所述:
存储引擎是处理不同表类型的sql操作的mysql组件。 InnoDB 是默认的、最通用的存储引擎,oracle建议将其用于表(专用用例除外)(这个 CREATE TABLE mysql 8.0中的语句默认创建innodb表。)
mysql服务器使用可插入的存储引擎体系结构,使存储引擎能够加载到正在运行的mysql服务器并从中卸载。
从目前的技术水平来看,myisam是5.x早期唯一可用的引擎,它正在被放弃,而innodb是事实上的标准:它提供了在其他知名数据库中可以找到的最典型的功能,例如事务和行级锁定。

vddsk6oq

vddsk6oq2#

innodb是一个存储引擎,允许外键,回滚,提交和acid兼容。。。
charset=是字符串中合法的字符集。
uft8mb4表示在utf-8编码方案中,每个字符最多存储4个字节。
ai指重音不敏感
ci指的是不区分大小写。
collate=用于比较字符的规则集

相关问题