存储引擎

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

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

完整的建表语句:

1
2
3
4
5
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

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

1.常见的存储引擎:

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

2.MyISAM 存储引擎:

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

1
2
3
4
5
6
Engine: MyISAM
     Support: YES
     Comment: MyISAM storage engine
Transactions: NO     #不支持事务!
          XA: NO
  Savepoints: NO

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

 

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

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

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

缺点:不支持事务!

3.InnoDB 存储引擎:

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

1
2
3
4
5
6
      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 存储引擎:

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

1
2
3
4
5
6
    Engine: MEMORY
     Support: YES
     Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
          XA: NO
  Savepoints: NO
  • 在数据库目录当中,每个表均已.frm格式的文件表示
  • 表数据以及索引被存储在内存当中
  • 表级锁机制
  • 不能包含TEXT(CLOB)或BLOB字段
  • 查询速度快
posted @   腹白  阅读(59)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示