iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >【MySQL】存储引擎
  • 870
分享到

【MySQL】存储引擎

mysql数据库sql 2023-08-16 15:08:45 870人浏览 薄情痞子
摘要

文章目录 1. 前言2. MySQL的体系结构3. 存储引擎简介4. InnoDB介绍5. MyISAM介绍6. Memory7. 存储引擎的选择8. 总结 1. 前言 存储引擎是 Mysql 的核心组件之一,负责数据的存储和管

1. 前言

存储引擎是 Mysql 的核心组件之一,负责数据的存储和管理。存储引擎的选择对 mysql 的性能和可靠性有重要影响.

2. Mysql的体系结构

MySQL 的体系结构可以划分为四层,包括:

  1. 连接层:也称为客户端层,负责处理连接请求、身份验证、权限管理等工作。MySQL 支持多种客户端连接方式,包括 tcp/IP 连接、本地连接、命名管道连接等。

  2. 服务层:也称为服务器层,负责解析 SQL 查询、生成查询执行计划、执行查询操作等工作。服务层中包含查询缓存、查询分析器、查询优化器等组件。

  3. 存储引擎层:MySQL 支持多种存储引擎,存储引擎层负责存储和管理数据。不同的存储引擎具有不同的特点和适用场景,常用的存储引擎包括 InnoDB、MyISAM、Memory 等。

  4. 文件系统层(存储层):MySQL 存储数据时使用文件系统,文件系统层负责管理数据库文件,包括数据文件、索引文件、日志文件等。MySQL 支持多种文件系统,包括 Ext4、XFS 等。
    在这里插入图片描述
    注意: 1. 索引(index)是位于存储引擎层的. 不同的存储引擎索引的结构是不一样的 2.InnoDB引擎是MySQL5.5版本后默认的引擎

3. 存储引擎简介

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

例如这里有一张表

create table account(    username varchar(10),    balance int);

我们来查看一下创建表时候的SQL语句

# 查询建表语句show create table 表名;

在这里插入图片描述
可以看到默认存储引擎是InnoDB.
关于存储引擎的SQL语句
在创建表的时候指定存储引擎.

create table 表名(字段1 数据类型,字段2 数据类型,...)ENGINE=存储引擎;

查询当前数据库支持的存储引擎

show engines;

以下是Mysql支持的存储引擎.会详细介绍InnoDB, MyISAM以及MEMORY这三个存储引擎.
在这里插入图片描述

4. InnoDB介绍

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

InnoDB的特点:

  1. 支持事务:InnoDB支持ACID事务,确保了数据的完整性和一致性。
  2. 支持行级定:InnoDB使用行级锁定,使并发访问和修改数据变得更加高效。
  3. 支持外键约束:InnoDB支持外键约束,使数据之间的联系更加严密和规范。
  4. 支持快照读取:InnoDB支持快照读取,使读取操作不会被写入操作所阻塞,提高了数据库的并发性能。
  5. 支持多版本并发控制:InnoDB使用多版本并发控制(mvcC)来处理并发访问,使读写操作可以同时进行,提高了数据库的并发性能。
  6. 支持自适应哈希索引:InnoDB可以自动创建和管理哈希索引,提高了查询性能。

文件: xxx.ibd: xxx代表的是表名,innoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm、 sdi)、数据和索引。

InnoDB的逻辑存储结构有以下部分组成: 行,页,区,段和表空间

  1. 行:行是InnoDB存储数据的基本单位,每行表示一条记录。每个表都有一个对应的行格式,行格式规定了行的存储方式,包括数据类型、长度、空间等。

  2. 表空间:表空间是InnoDB的存储文件,每个表都有一个对应的表空间,用于存储该表的数据和索引。InnoDB支持多个表共享一个表空间,这样可以更好地利用存储资源。

  3. 段:段是表空间中的一个逻辑结构,用于存储数据和索引。InnoDB中有两种类型的段:数据段和索引段。数据段用于存储表中的数据,索引段用于存储索引。

  4. 区:区是段的逻辑子结构,用于管理段中的数据和索引。InnoDB中有多个不同类型的区,包括B树节点、自适应哈希索引和插入缓冲区等。

  5. 页:页是区的逻辑子结构,是InnoDB存储数据和索引的最小单位。每个页的大小默认为16KB,可以通过配置文件进行修改。

5. MyISAM介绍

MyISAM是MySQL数据库管理系统的一种存储引擎,是MySQL早期的存储引擎。与InnoDB存储引擎相比,MyISAM的特点是速度快、易于管理、支持全文搜索等特性,但不支持事务、行级锁和高并发等高级特性。

  1. 支持全文搜索:MyISAM支持全文搜索,可以对文本数据进行全文检索,极大地提高了查询效率。

  2. 速度快:MyISAM的读写速度很快,因为它不支持事务、行级锁等高级特性,所以在高并发的情况下性能表现优越。

  3. 易于管理:MyISAM的管理和维护比较简单,因为它不支持事务和行级锁等高级特性,所以在数据恢复和备份等方面更加方便。

  4. 数据表结构缓存:MyISAM可以缓存数据表的定义和元数据,从而提高查询效率。

  5. 不支持事务和行级锁:MyISAM不支持事务和行级锁定,这意味着它不能保证数据的一致性和完整性,因此在高并发和数据安全性要求较高的应用场景下不适用。

6. Memory

Memory(内存存储引擎)是MySQL数据库管理系统的一种存储引擎,也被称为HEAP存储引擎。与其他存储引擎不同,Memory存储引擎将数据直接存储在内存中,而不是在磁盘上,因此查询速度相对较快。但由于内存有限,Memory存储引擎不适合存储大量数据。

特点:

  1. 查询速度快:由于Memory存储引擎将数据直接存储在内存中,查询速度相对较快。

  2. 不支持事务:Memory存储引擎不支持事务,因此不能保证数据的一致性和完整性。

  3. 支持表锁:Memory存储引擎支持表锁,因此在高并发的情况下可能会产生锁等待。

  4. 不支持BLOB和TEXT类型:Memory存储引擎不支持BLOB和TEXT类型的数据,仅支持较小的数据类型。

  5. 数据存储在内存中:Memory存储引擎将数据直接存储在内存中,因此数据丢失的风险较高,需要进行定期备份。

7. 存储引擎的选择

在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的应用系统,还可以根据实际情况选择多种存储引擎进行组合。

  • InnoDB∶是Mysql的默认存储引擎,支持事务、外键。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包含很多的更新、删除操作,那么InnoDB存储引擎是比较合适的选择。
  • MyISAM:如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不是很高,那么选择这个存储引擎是非常合适的。
  • MEMORY:将所有数据保存在内存中,访问速度快,通常用于临时表及缓存。MEMORY的缺陷就是对表的大小有限制,太大的表
    无法缓存在内存中,而且无法保障数据的安全性。

小结: 如果需要高并发、事务支持和数据安全性,建议选择InnoDB存储引擎;如果需要性能更快,但不需要支持事务和数据安全性,建议选择MyISAM存储引擎;如果需要快速查询小规模数据,可以选择Memory存储引擎。同时,还可以根据具体的数据类型、数据量和磁盘空间占用等因素来选择合适的存储引擎。

8. 总结

本文主要讲解MySQL的体系结构(连接层,服务层,存储引擎层和存储层):存储引擎(InnoDB, MyISAM以及MEMORY的特点)以及存储引擎的选择.不同的存储引擎在数据存储方式、读写效率、可靠性、安全性、功能特性等方面有所差异,因此在选择存储引擎时需根据具体需求进行综合考虑。

感谢你的观看!希望这篇文章能帮到你!
专栏:《速通MySQL》在不断更新中,欢迎订阅!
“愿与君共勉,携手共进!”
在这里插入图片描述

来源地址:https://blog.csdn.net/m0_63463510/article/details/130657293

您可能感兴趣的文档:

--结束END--

本文标题: 【MySQL】存储引擎

本文链接: https://www.lsjlt.com/news/371605.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【MySQL】存储引擎
    文章目录 1. 前言2. MySQL的体系结构3. 存储引擎简介4. InnoDB介绍5. MyISAM介绍6. Memory7. 存储引擎的选择8. 总结 1. 前言 存储引擎是 MySQL 的核心组件之一,负责数据的存储和管...
    99+
    2023-08-16
    mysql 数据库 sql
  • MySQL 存储引擎
      存储引擎 DBMS使用存储引擎进行数据的创建、查询、更新、删除操作。 不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。 MySQL提供了多种存储引擎,最常见的有3种。    ...
    99+
    2015-11-16
    MySQL 存储引擎
  • MYSQL——存储引擎
       MYSQL的存储引擎1   MYSQL可以将数据以不同的技术存储在文件和内存中,这种技术就成为存储引擎2   每一种存储引擎使用不同的存储机制、索引技巧、锁定水...
    99+
    2022-10-18
  • mysql-存储引擎
    存储引擎 完整的建表语句: CREATE TABLE dept ( DEPTNO int(2) NOT NULL, DNAME varchar(14) DEFAULT NULL, LOC varchar(13) DEF...
    99+
    2020-03-17
    mysql-存储引擎
  • Mysql--存储引擎
      1.文件系统: 1.1 操作系统组织和存取数据的一种机制。 1.2 文件系统是一种软件。 2.文件系统类型:ext2 3 4 ,xfs 数据 2.1 不管使用什么文件系统,数据内容不会变化 2.2 不...
    99+
    2021-09-03
    Mysql--存储引擎
  • Mysql -存储引擎
    1、存储引擎:是表级别的类型。 2、查看表存储引擎的方法: (1)、mysql> show table status in mydb where name='classes'\G; 1. ...
    99+
    2022-10-18
  • MYSQL存储引擎
    存储引擎 InnoDB      (1) InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句中提供一个类似Oracle的非锁定读。这些功能增加...
    99+
    2021-04-17
    MYSQL存储引擎
  • MySQL 存储引擎
    简介:存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。    常见分类有:InnoDB、MyISAM、Memory等; 一、InnoDB  ...
    99+
    2017-04-10
    MySQL 存储引擎 数据库入门 数据库基础教程 数据库 mysql
  • MySQL—存储引擎(上)
    ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️树高千尺,落叶归根人生不易,人间真情 目录 1). 连接层 2). 服务层 ...
    99+
    2023-09-07
    服务器 运维 mysql
  • MySQL之存储引擎
    Storage Engine是指表类型,也即在表创建时指明其使用的存储引擎,同一库中不同表可以使用不同的存储引擎,但建议要使用同一种存储引擎 MySQL体系结构 存储引擎 In...
    99+
    2022-10-18
  • MySQL 存储引擎(2)
    首先我们带着下边三个问题来认识存储引擎 存储引擎在MySQL中的作用是什么? MySQL都有哪些存储引擎 SQL又与存储引擎有什么关系? 存储引擎在MySQL中的作用是什么? 顾名思义,存储引擎就是用于存储我们的数据的。在关系型数据库中...
    99+
    2016-06-21
    MySQL 存储引擎(2)
  • mysql federated存储引擎
    通过federated存储引擎建立远程连接表 # 开启federated存储引擎 SHOW ENGINES ; MyISAM YES InnoDB DEFAULT ... FEDERATED YES # 创建...
    99+
    2020-02-03
    mysql federated存储引擎
  • MySQL的存储引擎
    1、存储引擎概念 • MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎 • 存储引擎是MySQL将数据存储在...
    99+
    2023-09-07
    mysql 数据库 java
  • MySQL(7)-mysql索引和存储引擎
         本篇博客讲的是MySQL的索引的功能和使用 , 以及存储引擎的基本简介 一. mysql索引索引的简介和作用索引在MySQL中叫做"键" , 是存储引擎用于快速找到记录的一种数据结构 . 索引对良...
    99+
    2022-10-18
  • mysql存储引擎记录
    MyISAM Mysql5.5之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定,MySQL 5.5起成为默认...
    99+
    2022-10-18
  • MySQL 官方存储引擎
    存储引擎是为不同的表类型处理 SQL 操作的 MySql 组件。InnoDB 是默认的、最通用的存储引擎,也是官方推荐使用的存储引擎,除非一些特定案例。MySql 5.6 中的 CREATE TABLE...
    99+
    2022-10-18
  • MySQL必知存储引擎
    Mysql存储引擎 MyISAM MySQL 5.0 之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务. InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5 起成为默...
    99+
    2020-10-18
    MySQL必知存储引擎
  • MySQL 存储引擎和锁
    MySQL 存储引擎和锁===============================================================================存储引擎: &...
    99+
    2022-10-18
  • MySQL中的存储引擎
       本篇文章主要介绍了MySQL存储引擎总结,本文讲解了什么是存储引擎 MyISAM、InnoDB、MEMORY、MERGE等内容,需要的朋友可以参考下 前言 在数据库中...
    99+
    2022-10-18
  • 3,mysql的存储引擎
    1,什么是存储引擎,存储引擎说白了就是如何存储数据,如何为存储的数据建立索引和如何更新,查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以成为表类型。 在Oracle和SQL Server等数据库中...
    99+
    2023-01-31
    引擎 mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作