我有一个简单的“人物”表:
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
什么意思?
2条答案
按热度按时间rsaldnfx1#
innodb是mysql中的一个存储引擎。如文件所述:
存储引擎是处理不同表类型的sql操作的mysql组件。
InnoDB
是默认的、最通用的存储引擎,oracle建议将其用于表(专用用例除外)(这个CREATE TABLE
mysql 8.0中的语句默认创建innodb表。)mysql服务器使用可插入的存储引擎体系结构,使存储引擎能够加载到正在运行的mysql服务器并从中卸载。
从目前的技术水平来看,myisam是5.x早期唯一可用的引擎,它正在被放弃,而innodb是事实上的标准:它提供了在其他知名数据库中可以找到的最典型的功能,例如事务和行级锁定。
vddsk6oq2#
innodb是一个存储引擎,允许外键,回滚,提交和acid兼容。。。
charset=是字符串中合法的字符集。
uft8mb4表示在utf-8编码方案中,每个字符最多存储4个字节。
ai指重音不敏感
ci指的是不区分大小写。
collate=用于比较字符的规则集