• MYSQL 存储引擎篇


    首先要了解MySQL体系结构

    客户端连接器  连接   MySQL Server 

    MySQL Server 分为 连接层,服务层,引擎层,存储层

    注意:1、索引Index是在存储引擎层实现的,不同的存储引擎索引结构不同。

    2、InnoDB是MySQL 5.5 版本以后默认的存储引擎。

    • 连接层:最上层是一些客户端和连接服务,主要完成一些类似于连接处理,授权认证以及相关的安全方案,服务器也会为安全接入的每个客户端验证它所具有的操作权限。
    • 服务层:第二层架构主要完成的大多数核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行,所有跨存储引擎的功能也在这一层实现,如过程、函数等。
    • 引擎层:存储引擎真正负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通信,不同的存储引擎具有不同的功能,可以根据不同的需要来选取合适的存储引擎。
    •  存储层:主要是将数据存储在文件系统之上,并完成与存储引擎的交互。

    什么是存储引擎?

    存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的而不是基于库的,所以存储引擎也可被称为表类型。

    注意:

    1、查询建表语句:show create table 表名;

    2、创建表时指定表存储引擎:

            create table udser{

                    name varchar(10),

                    id int(5);

             }engine=InnoDB;

    3、查看当前数据库支持的存储引擎:

    show engines;

    查询结果解释:

    Engine类型
    Support是否支持
    Comment注释
    Transactions是否支持事务
    XA是否支持XA协议
    Savepoints是否支持保存点


    InnoDB 是一种兼顾高可靠性和高性能的通用存储引擎。

    1、特点:

    • DML操作遵循ACID模型,支持事务。
    • 行级锁,提高并发访问性能。
    • 支持外键foreign key约束,保证数据的完整性和正确性。

    2、文件:

    xxx.ibd :xxx代表的是表名

    InnoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm,sdi)、数据和索引。

    3、参数: innodb_file_per_table

    查询语句:

    show variables like 'innodb_file_per_table'

    注:ibd正常查看不了内容,可以在路径下进入cmd

    输入:ibd2sdi 表名.ibd


    存储引擎的逻辑存储结构

    TableSpece表空间
    Segment
    Extent
    Page
    Row

    注意:区和页的大小固定的,区的大小是1M ,页的大小是16k,所以一个区可以包含64个页。


    MyISAM 是早期默认的存储引擎

    1、特点:

    不支持事务,不支持外键,支持表锁,不支持行锁,访问速度快

    2、文件:

    xxx.sdi:存储表结构信息

    xxx.MYD:存储数据

    xxx.MYI:存储索引


    Memory 存储在内存中,由于受到硬件、断电等问题,只能将这些表作为临时表或缓存使用

    1、特点:

    内存存放、hash索引(默认)

    2、文件:

    xxx.sdi:存储表结构信息


    重点总结:

    1、问InnoDB和MyISAM的区别:

    1. InnoDB支持事务,MyISAM不支持
    2. InnoDB支持行锁,MyISAM 支持表锁
    3. InnoDB支持外键,MyISAM不支持

    2、这三种引擎什么时候选择哪种:

    1. InnoDB:对事务完整性和并发条件下要求数据一致性,要求比较高。
    2. MyISAM:只是以读取和插入为主,很少更新和删除,并对事务的完整性、并发性要求不高。
    3. Memory:存在内存中,访问速度快,可用于临时表及缓存,缺陷就是对表的大小有限,太大的表无法在内存中返回,无法保障安全性。 
  • 相关阅读:
    GaussDB数据库SQL系列-SQL与ETL浅谈
    Docker网络功能
    未来科技中的云计算之路
    Ectd Raft 模块介绍(一)
    智能网联汽车测试场景数据车载采集平台搭建要求及方法
    使用标准信号检测 VM振弦采集模块测量精度
    虚拟机 silvaco
    8 Functions for Transforming Text
    vivado产生报告阅读分析13-时序报告9
    TP5 封装通用的微信服务类
  • 原文地址:https://blog.csdn.net/GiGi_Princess/article/details/126880241