存储引擎
1.存储引擎
-
一个完整的建表语句:
#创建了一张新表,默认的 mysql> create table t_x(id int); Query OK, 0 rows affected (0.02 sec) #查看新表 mysql> show create table t_x; t_x | CREATE TABLE `t_x` ( `id` int DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci #如果没有指定存储引擎,默认采用InnoDB引擎,字符集utf8mb4。 #这才是完整的建表语句 CREATE TABLE `t_x` ( `id` int DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
-
建表时,可以指定存储引擎,也可以指定字符集。
-
mysql默认使用InnoDB引擎,默认采用字符集是UTF8
-
存储引擎:只有在mysql中存在。Oracle中有对应机制,不叫存储引擎,叫存储方式。
-
mysql支持很多存储引擎,每一种存储引擎都对应一种存储方式。
2.常见的存储引擎
-
查看当前mysql支持的存储引擎:show engines \G
-
mysql 8.0.33支持9种存储引擎。
-
存储引擎相当于一种数据库的存储方式。
-
常见的存储引擎:
- MyISAM存储引擎:最常用的存储引擎,不是默认,
主要用三个文件存储每个表,表结构frm、数据文件MYD、索引文件MYI。
优点:可被压缩,节省存储空间。且可以转换为只读表提高检索效率。
缺点:不支持事务。
- InnoDB存储引擎:默认缺省存储引擎。数据存储在tablespace的表空间中。
优点:支持事务、行级锁、外键等。这种存储引擎数据安全得到保障。在mysql数据库崩溃之后提供自动恢复机制。
-
MEMORY存储引擎:
缺点:不支持事务,数据容易丢失。因为数据和索引都存储在内存当中。
优点:查询速度最快。
- MyISAM存储引擎:最常用的存储引擎,不是默认,
学习视频:动力节点MySQL基础入门到精通