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

  • 相关阅读:
    平台卡卷API文档分享
    java 开发第一个app工程
    前后端分离毕设项目之产业园区智慧公寓管理系统设计与实现(内含源码+文档+教程)
    【c++智能指针】模拟实现my_shared_ptr
    软考 系统架构设计师系列知识点之边缘计算(3)
    RabbitMQ安装
    C++数据类型范围
    apple pencil一定要买吗?Ipad专用笔推荐
    【Stable Diffusion教程】AI绘画工具SD如何安装使用?三种方法带你轻松上手!(附安装包和云端部署教程)
    CSAPP-BombLab详解
  • 原文地址:https://blog.csdn.net/weixin_45777469/article/details/126379196