美文网首页
八、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