五、MySQL存储引擎

目录

1.MySQL架构图

2.MySQL存储引擎


1.MySQL架构图

  •  
  • MySQL是由SQL接口、解析器、优化器、缓存和存储引擎组成。
    • Connectors:指的是不同语言与SQL的交互接口
    • Management Serivices & Utillities:系统管理和工具
    • Connection Pool:连接池,管理缓冲用户连接,线程处理等需要缓存的需求
    • SQL Interface:接收用户的SQL指令,并且返回需要查询的结果。
    • Parser: 解析器。
    • Optimizer:查询优化器-----选取-投影-联接-----SELECT  id,username FROM  user WHERE age>10;
    • Caches & Buffers:查询缓存
    • Engine:存储引擎

2.MySQL存储引擎

  • 存储引擎就是指表的类型,存取和处理数据的方式。
  • 查看当前支持的存储引擎:SHOW ENGINES;
    • ENGINE:存储引擎名称
    • SUPPORT:是否支持此存储引擎
    • COMMENT:存储引擎的注释
    • TRANSACTIONS:是否支持事务
    • XA:是否支持分布式交易处理的XA规范
    • SAVEPOINTS:是否支持保存点,以便事务回滚刀保存点
  • 查看默认的存储引擎:SHOW VARIABLES LIKES 'storage_engine';
  • 存储引擎分类
    • MEMORY存储引擎
      • 数据保存在内存中,读写效率高
      • 磁盘中产生一个以表明为名称.frm文件,只保存表结构
      • 如果关闭MySQL服务,此时数据会产生丢失
      • max_heap_table_size默认16MB
    • CSV存储引擎
      • CSV存储引擎字段不支持NULL,所有的的列必须设置成NOT NULL
      • CSV存储引擎不支持索引,也不支持分区
      • .csv结尾的文件是保存数据的文件
      • .csm结尾的文件是元信息文件,保存表的状态及存储的数据量
    • ARCHIVE存储引擎
      • 适合对于不经常访问又删除不了的数据做归档存储
      • .frm文件结构文件,.arz数据文件
      • 插入效率很高,而且占用空间小
      • ARCHIVE存储引擎只支持INSERT和SELECT 操作,不支持UPDATE/DELETE/REPLACE操作
    • MyISAM存储引擎
      • 默认MyISAM的表会在磁盘中产生3个文件
        • .frm:表结构文件
        • .MYD:数据文件
        • .MYI:索引文件
      • 可以在创建表的时候指定数据文件和索引文件存储位置,只有MyISAM表支持
        • DATA DIRECORY [=] 数据保存的绝对路径
        • INDEX DIRECTORY [=] 索引文件保存的绝对路径
      • MyISAM单表最大支持的数据量2的64次方条记录
      • 每个表最多可以建立64个索引
      • 如果是复合索引,每个复合索引最多包含16个列,索引值最大长度是1000B
      • MyISAM引擎的存储格式
        • 定长(FIXED 静态) :是指字段中不包含VARCHAR/TEXT/BLOB
        • 动态(DYNAMIC):只要字段中包含了VARCHAR/TEXT/BLOB
        • 只要字段中包含了VARCHAR/TEXT/BLOB:myisampack创建
    • InnoDB存储引擎
      • 设计遵循ACID模型,支持事务,具有从服务崩溃中恢复的能力,能够最大限度保护用户的数据
        • 原子性(Atomiocity)
        • 一致性(Consistency)
        • 隔离性(Isolation)
        • 持久性(Durability)
      • 支持行级锁,可以提升多用户并发时的读写性能
      • 支持外键,保证数据的一致性和完整性
      • InnoDB拥有自己独立的缓冲池,常用的数据和索引都在缓存中
      • 对于INSERT、UPDATE、DELETE操作,InnoDB会使用一种change buffering的机制来自动优化,还可以提供一致性的读,并且还能够缓存变更的数据,减少磁盘I/O,提高性能
        • Storage Limits:存储能力,64TB
        • MVCC:MVCC是一种多版本并发控制机制
        • B-Tree indexes:支持B-Tree索引
        • Full-text search indexes:支持
        • backup/point-in-time recovery:备份/时间点恢复,支持
        • Geospatial data type support:支持地理数据
      • 创建InnoDB表之后会产生两个文件
        • .frm表结构文件
        • .ibd,数据和索引存储表空间中
      • 所有的表都需要创建主键,最好是配合上AUTO_INCREMENT,也可以放到经常查询的列作为主键
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值