• MySQL进阶(存储引擎)


    目录

    MySQL体系结构

    存储引擎

    InnoDB 

    MyISAM

    Memory

    InnoDB和MyISAM的区别

    存储引擎的选择


    MySQL体系结构

            连接层

            服务层

            引擎层(index(索引)是在存储引擎存在的,不同的存储引擎索引的结构是不一样的)


     

            存储层

    存储引擎

            存储引擎是存储数据、简历索引、更新/查询数据等实现方式,存储引擎是基于表的,不是基于库的(也就是说在一个库下的多张表它是可以选择不同的存储引擎),存储引擎也可被称为表类型

    show engines 查看当前数据库支持的存储擎

    InnoDB 

    InnoDB是一种兼顾高可靠性和高性能的通用储存引擎,在MySQL5.5后,InnoDB是MySQL默认的存储引擎

    特点

    DML操作支持ACID(原子性,隔离性,一致性,持久性),支持事物

    行级锁,支持高并发访问特性

    支持外键 FOREIGN KEY约束,保持事物的完整性和正确性

    文件

    xxx.ibd:xxx代表的是表名,innoDB引擎的每张表都会对应这样的一个表空间文件,存储该表的表结构,数据和索引。 参数:innodb_file_per_table(觉得多张表公用一个表空间文件还是每张表用一个表空间文件)

    逻辑存储结构

    TableSpace 表空间

    Segment 段

    Extent 区

    Page 页

    Row 行


    MyISAM

    MyISAM是mysql早起默认的存储引擎

    特点

    不支持事务,不支持外键

    支持表锁,不支持行锁

    访问速度快

    文件

    xxx.sdi:存储表结构信息

    xxx.MYD:存储数据

    xxx.MYI:存储索引


    Memory

    介绍

    Memory引擎存储的表是存储在内存中的,由于受硬件或断电的影响,只能将这些表作为临时表或缓存使用

    特点

    内存存放

    hash索引

    xxx.sdi:存储表结构息


    InnoDB和MyISAM的区别

    InnoDB是支持事物,行锁,外键的

    MyISAM是不支持事物,行锁,外键,支持表锁


    存储引擎的选择

    InnoDB:是MySQL默认的存储引擎,支持事物、外键 ,如果应用对事物的完整性比较高,在并发下要求事物的一致性,数据操作除了插入和查询之外,还包含很多更新和删除操作,那么选择InnoDB存储引擎是合适的

    MyISAM:如果应用以读操作和插入操作为主,并且对事物的完整性,并发性要求不是很高,那么选择MyISAM是合适的

    MEMORY:将所有的数据保存在内存中,访问速度快,通常用于临时表和缓存,缺陷是对表的大小有限制,太大的表无法缓存到内存中,无法保证数据的安全性

  • 相关阅读:
    Seatunnel及web搭建流程
    15.IGame游戏公司的故事[20220624]
    Chrome修改主题颜色
    T1079 计算分数加减表达式的值(信息学一本通C++)
    swiper3 无缝滚动 + 鼠标悬停停止/继续
    【C++】手撕vector(vector的模拟实现)
    「Docker」面试全攻略:深入解析Docker技术栈
    2022-09-04 瞒春 学习笔记
    安卓开发轻松绕过隐私权限获取OAID手机唯一标识ID
    Eureka上集成Spring Cloud 微服务网关 gateway
  • 原文地址:https://blog.csdn.net/weixin_45777469/article/details/126379196