美文网首页
MySQL存储引擎

MySQL存储引擎

作者: ccoke | 来源:发表于2018-09-19 14:24 被阅读58次

    《MySQL技术内幕 InnoDB存储引擎》读书笔记

    1.1 数据库和实例

    • 数据库:物理操作系统下的文件或其他形式文件(如内存)类型的集合
    • 实例:MySQL数据库程序运行时的一个线程,用于操作数据库文件

    1.2 MySQL体系结构

    结构图 摘自互联网

    自上而下,从左到右介绍:

    • Connectors: 不同语言连接MySQL,如Java的mysql-connector-java 驱动
    • Enterprise Management Services: 管理服务或工具组件
    • ConnectionPool: 连接池,维护数据库连接状态
    • SQL interface: 数据库操作接口
    • Parser: 查询分析器
    • Optimizer: 优化器组件
    • Caches & Buffers: 缓冲组件
    • Pluggable Storage Engines: 插件式存储引擎
    • File System: 物理文件

    1.3 MySQL存储引擎

    存储引擎能够根据具体的应用建立不同存储引擎表。

    下面是对一些存储引擎简单介绍:

    1.3.1 InnoDB

    • 支持 事务,其特点是 行锁设计、支持外键
    • 支持全文索引
    • 支持 非锁定读,即默认读取操作不会产生锁
    • 高并发,高性能,高可用,高可拓展
    • 采用了聚集的方式,每张表都是按主键的顺序进行存放,如果没有显式的指定主键,它会为表的每一行生成一个6字节的ROWID作为主键

    1.3.2 MyISAM

    • 不支持事务、表锁设计
    • 支持全文索引
    • 缓冲池只缓冲索引文件,不缓冲数据文件
    • 存储引擎表由MYDMYI组成,MYD用来存放数据文件,MYI用来存放索引文件

    1.3.3 NDB

    • 是一个集群存储引擎,结构是share nothing的集群架构,具备更高的可用性
    • 数据全部存放在内存中,可以将非索引数据存放在磁盘上
    • 主键查找
    • 不适合连接操作(Join)。ps: MySQL数据库层完成,而不是存储索引层,复杂的连接需要巨大的网络开销,因此查询速度很慢。

    1.3.4 Memory

    • 数据存放在内存中,断电后消失,查询速度快,适合存储临时数据
    • 默认使用哈希索引
    • 只支持表锁,并发性能
    • varchar类型是按照定常字段(char)的方式存储,会浪费内存

    相关文章

      网友评论

          本文标题:MySQL存储引擎

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