百木园-与人分享,
就是让自己快乐。

存储引擎

表在数据库中的存储方式。

存储引擎只存在mysql中,(Oracle中有对应机制,但是不叫存储引擎)。

完整的建表语句:

CREATE TABLE mytable(
   id  INT(10) PRIMARY KEY,
   username VARCHAR(30) NOT NULL, 
   PASSWORD VARCHAR(30)
)ENGINE = InnoDB Default CAHRSET=UTF8;

注意:在MYSQL当中,凡是标识符可以使用飘号括起来,最好别用,不通用!

建表的时候可以指定存储引擎,也可以指定字符集。

mysql默认的存储引擎是InnoDB的方式!默认采用的字符集是UFT-8

mysql> show engines \\G   #查看当前,mysql版本支持的存储引擎命令! 当前MYSQL版本是5.7.33,支持9种存储引擎!

1.常见的存储引擎:

  • MyISAM 存储索引
  • InnoDB 存储索引
  • MEMORY 存储索引

2.MyISAM 存储引擎:

MyISAM:这种存储引擎不支持事务。是最常用的但不是默认的

 Engine: MyISAM
     Support: YES
     Comment: MyISAM storage engine
Transactions: NO     #不支持事务!
          XA: NO
  Savepoints: NO

它管理的表具有以下特征:

 

使用三个文件表示每个表 :

  • 格式文件 — 存储表的结构(mytable.frm)
  • 数据文件 — 存储表的数据(mytable.MYD)
  • 索引文件 — 存储表中索引的文件(mytable.MYI)

优点:可被转换为压缩,来节省空间,并且可以转换为只读表,提高检索效率!

缺点:不支持事务!

3.InnoDB 存储引擎:

支持事务,行级锁,外键等 ;这种存储引擎安全。

      Engine: InnoDB
     Support: DEFAULT
     Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
          XA: YES
  Savepoints: YES
  • 表的结构存储在xxx.frm文件当中
  • 数据存储在tablespace这样的表空间当中(逻辑概念),无法被压缩,无法被转换为只读!
  • 这种InnoDB存储引擎在MYSQL数据库崩溃之后提供自动恢复机制!【事务、安全、重量级】
  • 支持级联删除和级联更新。

4.MEMORY 存储引擎:

所有数据保存在内存中,断电即失,但是查询速度超级快!

    Engine: MEMORY
     Support: YES
     Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
          XA: NO
  Savepoints: NO
  • 在数据库目录当中,每个表均已.frm格式的文件表示
  • 表数据以及索引被存储在内存当中
  • 表级锁机制
  • 不能包含TEXT(CLOB)或BLOB字段
  • 查询速度快

本文来自博客园,作者:腹白,转载请注明原文链接:https://www.cnblogs.com/wyh518/


来源:https://www.cnblogs.com/wyh518/p/16829735.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » 存储引擎

相关推荐

  • 暂无文章