美文网首页
八、MySQL存储引擎

八、MySQL存储引擎

作者: Lord丶轩莫言弃 | 来源:发表于2019-08-01 10:39 被阅读0次

    1、概述

    • MySQL可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎
    • 每一种存储引擎使用不同的存储机制、索引技巧、锁定水平,最终提供广泛且不同的功能

    2、存储引擎类型

    • MyISAM:存储限制可达256TB,支持索引、表级锁定、数据压缩
    • InnoDB:存储限制为64TB,支持事务和索引,锁颗粒为行锁
    • Memory
    • CSV
    • Archive

    3、存储引擎的相关知识点

    • 并发控制

      • 当多个连接对记录进行修改时保证数据的一致性和完整性
      • 共享锁(读锁):在同一时间段内,多个用户可以读取同一个资源,读取过程中数据不会发生任何变化
      • 排他锁(写锁):在任何时候只能有一个用户写入资源,当进行写锁时会阻塞其他的读锁或者写锁操作
    • 锁颗粒

      • 表锁:表锁,是一种开销最小的锁策略
      • 行锁:行锁,是一种开销最大的锁策略
    • 事务

      • 事务用于保证数据库的完整性
    • 事务的特性

      • 原子性(Atomicity)
      • 一致性(Consistency)
      • 隔离性(Isolation)
      • 持久性(Durability)
    • 外键

      • 外键是保证数据一致性的策略
    • 索引

      • 是对数据表中一列或多列的值进行排序的一种结构
      • 普通索引、唯一索引、全文索引、btree索引、hash索引......

    4、各种存储引擎的特点

    特点 MyISAM InnoDB Memory Archive
    存储限制 256TB 64TB
    事务安全 - 支持 - -
    支持索引 支持 支持 支持
    锁颗粒 表锁 行锁 表锁 行锁
    数据压缩 支持 - - 支持
    支持外键 - 支持 - -
    • BlackHole:黑洞引擎,写入的数据都会消失,一般用于做数据复制的中继

    • MyISAM:适用于事务的处理不多的情况

    • InnoDB:适用于事务比较多,需要有外键支持的情况

    5、修改存储引擎的方法

    • 通过修改MySQL配置文件实现
    default-storage-engine = engine
    
    • 通过创建数据表命令实现
    CREATE TABLE table_name(
        ...
        ...
    ) ENGINE = engine;
    
    # 查看表创建命令
    SHOW CREATE TABLE tbl_name;
    
    • 通过修改数据表命令实现
    ALTER TABLE table_name ENGINE [=] engine_name;
    

    相关文章

      网友评论

          本文标题:八、MySQL存储引擎

          本文链接:https://www.haomeiwen.com/subject/yntqdctx.html