• Mysql数据库 17.Mysql存储引擎


    Mysql体系结构分为4层:

    1.连接层

    最上层是一些客户端和连接服务,包括大多数基于客户端/服务端工具实现的类似于TCP/IP的通信,主要功能是完成一些类似于连接处理、授权认证、安全方案等,在该层上还引入线程池的概念,为通过认证接入的客户端提供线程。

    2.服务层

    这一层主要完成了大多数的核心服务功能,如SQL接口,SQL解析器,查询优化器、缓存、内置函数执行、所有跨存储引擎的功能也在这一层实现,比如DML、DDL语句封装、存储过程、视图等,都是在这一层完成。

    3.引擎层

    存储引擎层,存储引擎是真正负责MySQL中数据的储存和提取,服务器通过API和存储引擎进行通信。不同的引擎有着不同的功能,我们可以根据自己的需求,来选择合适的存储引擎,并且数据库中的索引实在存储引擎层实现的。

    4.存储层

    数据存储层,主要是将数据(日志、索引、二进制日志、错误日志、查询日志、慢查询日志等)存储在文件系统之上(存储到磁盘中),并可以完成与引擎的交互,MySQL他的架构可以在多种不同场景下使用,并发挥良好作用主要体现在储存引擎上,他是可插拔的储存引擎。

    存储引擎

    默认使用InnoDB,引擎是基于表的,存储引擎也可以被称之为表类型。

    默认引擎查看

    show create table 表名;

    1. #默认引擎查看
    2. use db_test3;
    3. show create table order_db ;

    查看所有存储引擎

    1. #查看所有存储引擎
    2. show engines;

    存储引擎介绍

    常见的引擎如下

    1.innoDB 默认

    2.MyISAM MySQL 早期版本默认引擎

    3.memory 数据存储在内存中,通常作用于缓存或者临时表

    引擎的操作

    创建指定引擎的数据表

    1. #创建指定引擎的数据表
    2. create table mytable(
    3. id int,
    4. name varchar(10)
    5. )engine = MyISAM;

    1. #查看见表默认引擎
    2. show create table mytable ;

     

    InnoDB

    特点

    查询某引擎是否被开启

    1. #查询某引擎是否被开启
    2. show variables like 'innodb_file_per_table';

    逻辑存储区域

    innoDB使用场景

    引擎:不同场景下使用不同的引擎

    MyISAM

    MyISAM是早期的默认引擎

    特点

    MyISAM使用场景

    注意:

    ***!!InnoDB引擎与MyISAM引擎的区别?

     

    Memory

    基于缓存的引擎

    Memory引擎的表数据存储在内存中,所以导致会受到硬件问题,断电问题影响(一旦服务器关闭,数据就会消失),只能将Memory引擎的表作为临时表或者缓存来使用

    特点

    xxx.sdi:储存表结构信息

    使用场景总结

    因为是基于缓存的引擎,所以可替代性强

  • 相关阅读:
    永远无法实现的“诚实“
    Mysql 慢查询日志
    前端开发需掌握的linux命令行
    寻找小竹!(DFS+素数筛变形筛不同质因数个数)
    pod&node选择部署策略: nodeSelector和nodeAffinity
    手动实现第一个Servlet程序
    MyBatis入门(二)MyBatis增删改查
    [JAVA]通过HashMap实现的增删改查小例子
    当画函数图像时,给变量赋值,显示无法执行赋值,因为左侧和右侧元素数目不一样,该如何修改,如下图
    《数据库系统概论》-02 中级SQL 约束、授权、索引
  • 原文地址:https://blog.csdn.net/m0_73983707/article/details/134542322