【MySQL系列笔记】- 第七章 - 常用的存储引擎 - MyISAM, InnoDB, MEMORY区别

MySQL支持多种存储引擎,如InnoDB(默认,支持事务处理),MyISAM(不支持事务,但数据存储高效)和MEMORY(数据存储在内存中,速度快但不持久)。InnoDB提供事务的ACID属性,包括原子性、一致性、隔离性和持久性,而MyISAM使用三个文件表示表并可压缩,MEMORY则将数据和索引存储在内存中,提高查询速度。

存储引擎

存储引擎是MySQL特有的,是一个表存储/组织输出的方式

不同的存储引擎、表存储数据的方式不同

  1. 如何给表指定“存储引擎”?

    在建表时最后的 ) 后面使用:

    ENGINE 来指定存储引擎
    CHARSET 来指定这张表的字符编码方式

    create table t_product(
    		id int primary key,
    		name varchar(255)
    )engine=InnoDB default charset=gbk;
    

    这里使用了InnoDB引擎,其字符编码格式为gbk

  2. mysql默认的存储引擎是:InnoDB,百科link
    mysql默认的字符编码方式是:utf8,百科link

  3. mysql支持九大存储引擎,版本不同支持情况不同

    比如我在23年初安装的版本(8.0.31)支持8种

    # 显示所有引擎和支持情况
    show engines \G
    
  4. 常用的引擎介绍:

    数据库名称特征优点缺点
    MyISAM使用三个文件表示每个表可被转换为压缩、只读表来节省空间不支持事务机制,安全性低
    InnoDBMySQL默认,支持事务,支持数据库崩溃后自动恢复机制,安全最大的特点就是支持事务:以保证数据的安全效率不高,不能压缩和转换为只读
    MEMORY其数据存储在内存中,且行的长度固定查询效率是最高的,不需要和硬盘交互不安全,关机之后数据消失

    MyISAM特性

    1. 使用三个文件表示每个表:
      格式文件 — 存储表结构的定义(mytable.frm)
      数据文件 — 存储表行的内容(mytable.MYD)
      索引文件 — 存储表上索引(mytable.MYI):索引是一本书的目录,缩小扫描范围,提高查询效率的一种机制。

    2. 可被转换为压缩、只读表来节省空间

    InnoDB特性

    1. 每个表均以.frm 格式的文件表示

    2. 提供一组用来记录事务性活动的日志文件

    3. COMMIT(提交)、SAVEPOINTROLLBACK(回滚)支持事务处理

    4. 提供全 ACID 兼容

      Atomicity(原子性):一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成(被Rollback到开始前),不会结束在中间某个环节。
      Consistency(一致性):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。
      Isolation(隔离性):数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。
      Durability(持久性):事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

    5. 在 MySQL 服务器崩溃后提供自动恢复

    6. 多版本(MVCC)和行级锁定

    7. 支持外键及引用的完整性,包括级联删除和更新

    MEMORY 特征

    1. 在数据库目录内,每个表均以.frm 格式的文件表示。
    2. 表数据及索引被存储在内存中。(目的就是快,查询快!
    3. 表级锁机制。
    4. 不能包含 TEXTBLOB 字段。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值