Bootstrap

Mysql学习笔记第六章—存储引擎

存储引擎

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存储引擎:

      ​ 缺点:不支持事务,数据容易丢失。因为数据和索引都存储在内存当中。

      ​ 优点:查询速度最快。

学习视频:动力节点MySQL基础入门到精通

;