【MySQL数据库 | 第十六篇】存储引擎

这篇具有很好参考价值的文章主要介绍了【MySQL数据库 | 第十六篇】存储引擎。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【MySQL数据库 | 第十六篇】存储引擎

目录

 前言:

 MySQL体系结构图:

存储引擎简介:

1. InnoDB存储引擎:

2. MyISAM存储引擎:

3. MEMORY存储引擎:

4. NDB Cluster存储引擎:

5. ARCHIVE存储引擎:

存储引擎语法:

ACID与行级锁:

 总结:


 前言:

经过前面15篇的学习,我们已经学完了SQL的基本语法内容,大致掌握了数据库的操作,而接下来我们将进行SQL的进阶学习,今天我们要学习的内容为:MySQL的存储引擎。

 MySQL体系结构图:

【MySQL数据库 | 第十六篇】存储引擎

MySQL的结构体系主要包含以下几个方面的内容:

1. 服务器层(Server Layer):提供了MySQL的核心服务,包括连接管理、查询解析、优化等功能。

2. 存储引擎(Storage Engine):提供了数据的存储和访问服务。MySQL自身支持多种存储引擎,如InnoDB、MyISAM等,每种存储引擎都有自己特有的特点和功能。

3. 网络层(Connection Layer):提供了MySQL与客户端之间的通讯服务,支持多种协议,如TCP/IP、HTTP等。

4. 应用编程接口(Application Programming Interfaces,APIs):提供了多种编程接口,包括C、C++、Python等接口,以方便应用程序与MySQL进行交互操作。

MySQL的整个体系结构主要是由这几个部分组成的,其中服务器层和存储引擎层是MySQL核心的组成部分,分别负责提供核心服务和数据的存储和访问服务。网络层和应用编程接口层则提供了与客户端和应用程序之间交互操作的相关服务。这些组成部分配合使用,构成了MySQL强大、灵活的系统结构。

InnoDB是MySQL5.5版本后的默认使用存储引擎。

存储引擎简介:

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

MySQL中的存储引擎是处理数据存储和检索方面的核心组件。MySQL支持多种不同的存储引擎,这些存储引擎在某些方面有着自己的独特优势。

常见的MySQL存储引擎包括以下几种:

1. InnoDB存储引擎:

InnoDB存储引擎是MySQL中最常用的一个存储引擎,也是默认的存储引擎。它支持ACID事务,具有行级锁定和外键约束等特性,适合于应用于事务性和高并发的应用程序。InnoDB支持数据的热备份和恢复,并提供了高效的缓存机制。

2. MyISAM存储引擎:

MyISAM不支持事务,并且对于更新操作会锁定整个表,但是在插入和查询方面性能非常好。对于只读应用、或者单线程的应用,使用MyISAM可以获得更好的性能。MyISAM表的特点是表锁定,速度快,但是不支持事务,也不支持外键等约束。

3. MEMORY存储引擎:

MEMORY存储引擎是将表数据存储在内存中,适用于一些处理销售、环境监测等数据的场景。MEMORY是一个非常快速的存储引擎,但是它的缺点是,当服务器关闭进程或者崩溃时,表数据就被清空了。MEMORY还支持Hash索引,这极大的提高了查询效率。

4. NDB Cluster存储引擎:

NDB Cluster可以将一个数据库拆分成多个节点,每个节点都维护一个数据子集,并协同工作以支持完整的数据库操作。这种存储引擎用于大规模、高可用性的数据中心

5. ARCHIVE存储引擎:

ARCHIVE存储引擎是一种仅用于存档目的的存储引擎,适用于一些数据日志、快照备份等场景。它旨在提供一个非常低的磁盘空间消耗和一个高性能的压缩和解压缩能力,不支持索引、更新和删除操作,常用于写入数据后压缩存档。 

不同的存储引擎在性能、特性、使用场景等方面各不相同,开发者在使用MySQL时需要根据需求选择合适的存储引擎。

存储引擎语法:

1.查询当前表的引擎:

show create  table 表名;

运行结果:
【MySQL数据库 | 第十六篇】存储引擎

 2.在创建表的时候指定存储引擎:

create table name(
    字段1 字段类型
    ....
    字段2 字段类型
) ENGINE = 引擎类型;

 实例:

create table try(
    id int
) engine = MyISAM;

运行结果:
【MySQL数据库 | 第十六篇】存储引擎

3.查询当前数据库支持的引擎类型:

show engines ;

运行结果:
【MySQL数据库 | 第十六篇】存储引擎

ACID与行级锁:

ACID

     是一个表示事务处理基本原则的缩写,包括以下四个方面:

  1. 原子性(Atomicity):一个事务被视为一个原子操作,它将所有的任务都视为一个整体(如果其中有一部分操作失败,整个事务就会被回滚),要么全部完成,要么全部不完成。

  2. 一致性(Consistency):在事务开始之前和事务结束之后,数据库的状态必须保持一致,这意味着事务执行中间不能破坏数据库的完整性约束。

  3. 隔离性(Isolation):隔离性指在数据库执行多个事务时,每个事务都应该是完全独立的,执行它们的顺序不应该影响结果。

  4. 持久性(Durability):持久性是指在事务完成之后,其产生的结果必须永久保存在数据库中,即使出现了硬件故障或其他系统故障,也不能影响已提交的事务结果。

行级锁:  

      行级锁(Row-Level Lock)是数据库管理系统(DBMS)中的一种锁机制,在处理并发读写时,对每一行数据进行锁定,以保证同时读写的数据不会冲突。与传统的表级锁(Table-Level Lock)不同,行级锁可以在只对某一行进行加锁的情况下,并发地处理多个事务,从而提高数据处理的效率。

       行级锁的工作原理是:在对一行数据进行修改/删除操作之前,向该行添加一个锁定标记,直到事务完成或在commit/rollback之后才释放这行锁定标记。

       行级锁的主要优点包括:

      1. 提高了并发性:行级锁可以锁定单独的行而不是整个表,这意味着在并发访问时可以更加高效的实现读和写的操作。

      2. 减少了锁定冲突:使用行级锁可以减少锁定并发访问带来的冲突,避免了串行化操作,从而提高了执行效率。

     3. 支持更高的事务处理能力:通过优化锁机制,行级锁降低了锁等待时间和锁竞争的频率,从而支持更高的事务处理能力。

     需要注意的是,行级锁在使用时需要控制两个方面的问题:锁定粒度和锁定时间。锁的粒度太细,可能会导致锁定的数据量过大,导致锁竞争的开销过大;锁的时间过长,又可能会影响并发读写性能。因此在使用行级锁时,需要权衡粒度和时间两个方面的因素,并根据实际应用需求进行适当调整。

 总结:

        存储引擎就是存储数据,建立索引,更新/查询数据等技术的实现方式。 我们根据不同的需求来选择不同的引擎来处理表数据,可以使得效率大大提高。

今天的内容到这里就结束了,感谢大家的阅读。

如果我的内容对你有帮助,请点赞,评论,收藏创作不易,大家的支持就是我坚持下去的动力!

【MySQL数据库 | 第十六篇】存储引擎文章来源地址https://www.toymoban.com/news/detail-480803.html

到了这里,关于【MySQL数据库 | 第十六篇】存储引擎的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第十六章 使用MariaDB数据库管理系统

    一、数据库管理系统 1、数据库介绍 数据库是指按照某些特定结构来存储数据资料的数据仓库。在当今这个大数据技术迅速崛起的年代,互联网上每天都会生成海量的数据信息,数据库技术也从最初只能存储简单的表格数据的单一集中存储模式,发展到了现如今存储海量数据

    2024年02月05日
    浏览(52)
  • 【数据结构入门精讲 | 第十六篇】并查集知识点及考研408、企业面试练习

    上一篇中我们进行了散列表的相关练习,在这一篇中我们要学习的是并查集。 在许多实际应用场景中,我们需要对元素进行分组,并且在这些分组中进行查询和修改操作。比如,在图论中,我们需要将节点按照连通性进行分组,以便进行最小生成树、最短路径等算法;在计算

    2024年02月03日
    浏览(51)
  • MySQL基础(三十六)其他数据库日志

    千万不要小看日志 。很多看似奇怪的问题,答案往往就藏在日志里。很多情况下,只有通过查看日志才能发现问题的原因,真正解决问题。所以,一定要学会查看日志,养成检查日志的习惯,对提升你的数据库应用开发能力至关重要。 MySQL8.0 官网日志地址:“ https://dev.mys

    2024年02月05日
    浏览(65)
  • SQL Server存储过程(数据库引擎)使用详解

    SQL Server 中的存储过程是一组一个或多个 Transact-SQL 语句的引用。过程类似于其他编程语言中的构造,因为它们可以: 接受输入参数并以输出参数的形式向调用程序返回多个值。 包含在数据库中执行操作的编程语句。其中包括调用其他过程。 向调用程序返回状态值,以指示成

    2023年04月09日
    浏览(49)
  • 【MySQL数据库 | 第十二篇】:约束

    在MySQL中, 约束是一种限制数据表中列值的规定 。保证数据库中的数据正确,有效性和完整性。MySQL中的约束有以下几种: 1. 主键约束(Primary Key Constraint) :主键是用于唯一标识表中每行记录的列。主键约束要求 每个主键列的值都是唯一的,且不能为NULL 。一个表只能有一

    2024年02月08日
    浏览(50)
  • 【MySQL数据库 | 第十五篇】事务

        目录    前言:  介绍事务:  控制事务:  事务四大特性:  并发事务问题:  事务隔离级别: 总结:   这章我们将进入到MySQL基础篇的最后一章:事务,希望大家可以坚持下去,跟着我一起走完MySQL的学习之旅。 MySQL是一种关系型数据库管理系统,支持事务管理。 事

    2024年02月08日
    浏览(57)
  • 二十三种设计模式第十六篇--观察者模式

    观察者模式是一种行为型设计模式,它建立了一种对象间的一对多依赖关系,使得当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。这种模式可以实现对象间的松耦合通信,提高系统的可扩展性和灵活性。 观察者模式的核心是两个角色:主题(

    2024年02月12日
    浏览(51)
  • 【MySQL数据库 | 第十三篇】多表查询

    多表查询是指在一个SQL语句中使用多个表进行数据查询和操作。多表查询可以对数据表之间的关系进行查询,例如可以通过连接多个表来获取更完整的数据信息。关于单表查询我们也介绍过,已经整理成文章发布:【MySQL数据库 | 第九篇】DQL操作_我是一盘牛肉的博客-CSDN博客

    2024年02月08日
    浏览(57)
  • mysql 数据库引擎介绍

    一、数据库引擎     数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。 使用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库。这包括创建

    2024年02月14日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包