MySQL之数据库引擎详解(内附面试题:InnoDB和MyISAM的联系与区别)

🥳🥳Welcome Huihui's Code World ! !🥳🥳

接下来看看由辉辉所写的关于MySQL数据库引擎的相关操作吧

目录

🥳🥳Welcome Huihui's Code World ! !🥳🥳

一. 数据库引擎是什么?

1.数据库引擎概念

2.最常见的引擎

①. InnoDB:

概念:

特点:

总结:

②. MyISAM:

概念:

特点:

总结:

③. Memory:

概念:

特点:

总结:

④. Archive:

概念:

特点:

总结:

💡💡辉辉小贴士:InnoDB和MyISAM的联系与区别(面试题)

二.为什么要学习MySQL数据库引擎?

三.存储引擎查看

四.SQL标准的四种隔离级别  

1.概念

①.读未提交(Read Uncommitted):

②.读已提交(Read Committed):

③.可重复读(Repeatable Read):

④.可串行化(Serializable):

2.事务隔离级别问题

①脏读

②幻读

③不可重复读

💡💡辉辉小贴士:三者间的区别

五.ACID事务是什么 


一. 数据库引擎是什么?

1.数据库引擎概念

MySQL数据库引擎是用于管理数据库表的存储和检索的软件组件。它负责处理数据在磁盘上的物理存储、索引、事务处理和并发控制等方面的功能

⭐⭐MySQL的核心就是存储引擎

2.最常见的引擎

  • ①. InnoDB:

    • 概念:

      • InnoDB是MySQL的默认存储引擎自MySQL 5.5版本开始。它支持事务、行级锁定、外键约束和崩溃恢复等功能,适用于需要高并发性和数据完整性的应用
    • 特点:

      • 1. 事务支持:InnoDB是一个支持事务的引擎。它遵循ACID(原子性、一致性、隔离性和持久性)特性,能够确保并发事务之间的数据一致性和完整性。这意味着你可以在InnoDB表上执行BEGIN、COMMIT和ROLLBACK等命令,实现对数据修改的原子性操作

      • 2. 行级锁定:InnoDB使用行级锁定机制,允许多个事务同时对同一表中的不同行进行读写操作。这样可以提高并发性能并减少锁冲突。与传统的表级锁定相比,行级锁定提供了更细粒度的锁定控制,减少了锁定竞争对性能的影响

      • 3. 外键约束:InnoDB支持外键约束,这使得在多个表之间建立关联关系变得更加容易和可靠。外键约束可以保持数据的引用完整性,并在需要时执行级联操作。它通过检查插入、更新和删除操作是否满足约束条件来确保数据一致性

      • 4. 崩溃恢复:InnoDB具有强大的崩溃恢复能力。它使用日志(log)和检查点(checkpoint)机制来保证即使在数据库或系统崩溃后,数据的一致性也可以得到恢复。崩溃恢复机制可以确保数据在数据库重新启动时保持一致性,并保护数据免受损坏和丢失

      • 5. 高并发性能:InnoDB在处理高并发读写操作时表现出色。由于使用行级锁定,多个事务可以同时对同一表进行读写操作,减少了锁定冲突和阻塞现象。此外,InnoDB还实现了高效的缓冲池(Buffer Pool)机制,可以提高数据的访问速度和响应性能

      • 6.支持热备份:InnoDB支持在线备份和恢复,允许在备份期间继续进行数据库操作。这意味着你可以在不中断数据库正常运行的情况下进行备份,确保数据的安全性和可用性

    • 总结:

      • 综上所述,InnoDB是一个功能强大、可靠和可扩展的数据库引擎。它提供了事务支持、行级锁定、外键约束、崩溃恢复、高并发性能和热备份等特性,适用于对数据一致性和可靠性有较高要求的应用场景

-------------------------------------------------------------------------------------------------------------------------

  • ②. MyISAM:

    • 概念:

      • MyISAM是MySQL的另一个常见存储引擎,它不支持事务,只支持表级锁定。MyISAM对于读取密集型应用具有较好的性能,适合用于非事务性的应用场景,例如博客、新闻等
    • 特点:

      • 1. 高查询性能:MyISAM在执行读操作(SELECT)方面表现出色,特别适用于读取密集型应用。它使用表级锁定,允许多个读操作同时进行,从而提高查询的并发性能

      • 2. 低存储空间需求:相对于InnoDB引擎,MyISAM在存储方面通常占用更少的磁盘空间。MyISAM采用表格级锁定和不支持事务的机制,减少了存储空间的开销

      • 3. 不支持事务:MyISAM引擎不支持事务,这意味着它不支持事务的原子性和一致性,无法提供多个操作的回滚能力。如果应用对事务处理要求较高,例如需要保持数据的一致性和完整性,那么MyISAM可能不是一个合适的选择

      • 4. 不支持外键约束:MyISAM引擎不支持外键约束的功能,不能在数据库级别上维护表之间的引用完整性。这意味着在MyISAM表中,你需要手动确保数据的一致性,包括维护表之间的关联关系和约束条件

      • 5. 不支持崩溃恢复:相对于InnoDB引擎提供的强大的崩溃恢复能力,MyISAM引擎对于数据库或系统的崩溃后恢复数据的能力较弱。因此,在对数据的持久性和可靠性有较高要求的情况下,MyISAM可能不是最合适的选择

    • 总结:

      • 综上所述,MyISAM是一个适用于读取密集型应用并对存储空间效率有较高要求的数据库引擎。它具有高查询性能和较低的存储空间需求,但不支持事务、外键约束和崩溃恢复。在选择使用MyISAM之前,需要根据具体的应用需求进行权衡,考虑读写比例、数据一致性和可靠性要求等因素

-------------------------------------------------------------------------------------------------------------------------

  • ③. Memory:

    • 概念:

      • Memory引擎将表数据存储在内存中,提供非常高的访问速度,但数据在数据库服务器断电或重启时会丢失。它适用于需要频繁读写临时数据的应用,如缓存、临时表等
    • 特点:

      • 1. 内存中存储:Memory引擎将表的数据存储在内存中,而不是磁盘上。这使得它的读写操作非常高效,对于读取和写入操作具有非常快的响应速度。由于数据存储在内存中,可以极大地降低磁盘I/O的开销 
      • 2. 表级锁定:Memory引擎使用表级锁定机制,这意味着在进行写操作时需要锁定整个表,这可能导致并发写操作之间的冲突和阻塞。然而,在读取操作时不需要锁定,因此可以实现高并发的读取能力
      • 3. 不支持事务和崩溃恢复:Memory引擎不支持事务处理和崩溃恢复。这意味着它不提供像InnoDB引擎那样的事务保证和崩溃恢复机制。如果你的应用需要事务支持或对数据的持久性和可靠性要求较高,可能不适合使用Memory引擎
      • 4. 不支持外键约束:Memory引擎不支持外键约束的功能,不能在数据库级别上维护表之间的引用完整性。这意味着在Memory表中,你需要手动确保数据的一致性,包括维护表之间的关联关系和约束条件
      • 5. 适用于临时数据和高速缓存:由于Memory引擎将数据存储在内存中,它特别适合存储临时数据和高速缓存。例如,可以将经常被查询的热门数据缓存到Memory表中,以提高读取性能
    • 总结:

      • 综上所述,Memory引擎适用于对读取速度要求较高的场景,如缓存、临时表和高速数据处理。它具有快速的读写操作以及不需要磁盘I/O的优势,但不支持事务、表级锁定和崩溃恢复等功能。在选择使用Memory引擎之前,需要根据具体的应用需求进行权衡,考虑读写比例、数据一致性和可靠性要求等因素
      • ⭐⭐需要注意的是,由于Memory引擎将数据存储在内存中,因此对于存储空间的利用和管理需要谨慎考虑。此外,由于内存的限制,Memory表可能无法处理大型数据集或需要频繁修改的数据

-------------------------------------------------------------------------------------------------------------------------

  • ④. Archive:

    • 概念:

      • Archive引擎以高压缩比优化了存储空间,并提供快速的插入和查询操作。它适用于存档和日志记录等场景,但不支持索引和更新操作
    • 特点:

      • 1. 高度压缩:Archive引擎以高度压缩的方式存储数据,可以极大地减少存储空间的需求。它使用类似于zip压缩算法的方式来存储数据,因此可以在磁盘上保存大量的归档数据
      • 2.适合归档数据Archive引擎适用于那些不经常进行更新操作的归档数据。归档数据通常是一次性写入,很少或不会进行修改或删除。因此,Archive引擎适用于存储历史数据、日志文件等不再经常进行读写操作的数据
      • 3. 高度限制:Archive引擎对表的功能和使用有很多限制。它不支持索引,因此只能进行全表扫描的查询操作,查询速度可能会受到影响。同时,Archive表不支持事务、行级锁定和外键约束等功能
      • 4. 仅支持插入和查询:Archive引擎只支持插入和查询操作,不支持更新和删除操作。如果需要修改归档数据,必须先将数据复制到非Archive表中进行修改,然后再重新归档
      • 5. 低存储和高性能:由于高度压缩和仅支持插入和查询操作的特性,Archive引擎在存储上具有很高的效率,并且可以实现较快的查询速度。它适用于那些需要长期保存的大量历史数据,同时又不常需要进行查询操作
    • 总结:

      • 综上所述,Archive引擎是一种适用于存储和查询归档数据的MySQL存储引擎。它以高度压缩的方式存储数据,适用于不经常更新的归档数据。然而,由于其功能限制和不支持事务、索引等特性,需要根据具体的应用需求和数据访问模式进行权衡和选择
      • ⭐⭐需要注意的是,由于Archive引擎的特性限制,它并不适用于那些需要频繁进行更新、查询和事务处理的数据。如果数据需要经常被修改或删除、需要支持复杂查询或具有安全性约束,那么其他的存储引擎(例如InnoDB或MyISAM)可能更适合

此外,还有其他一些MySQL数据库引擎,如CSV、Blackhole、Federated等,每个引擎都有自己的特点和适用场景。开发者可以根据应用需求选择适合的数据库引擎

💡💡​​​​​​​辉辉小贴士:InnoDB和MyISAM的联系与区别(面试题)

InnoDB和MyISAM是两种常见的MySQL数据库引擎,它们有一些联系和区别

  • 联系:
    • 1. 两者都是MySQL的存储引擎,用于管理数据库表的存储和检索
    • 2. 它们都支持基本的数据库功能,如索引、事务和锁
  • 区别:
    • 1. 事务支持:InnoDB是一个事务安全的存储引擎,支持ACID(原子性、一致性、隔离性和持久性)事务特性。而MyISAM不支持事务,只支持表级锁
    • 2. 锁定级别:InnoDB支持行级锁定,可以提供更好的并发性能和更高的并发处理能力。而MyISAM只支持表级锁定,可能在并发访问时引起锁冲突
    • 3. 数据完整性:InnoDB支持外键约束,可以确保数据的完整性。MyISAM不支持外键约束
    • 4. 数据缓存:InnoDB使用缓冲池来缓存数据和索引,提高读取性能。而MyISAM使用操作系统的文件系统缓存来缓存数据,性能较低
    • 5. 表空间:InnoDB的表空间文件包含数据和索引,使用独立的文件存储。而MyISAM的数据和索引存储在不同的文件中
    • 6. 崩溃恢复:InnoDB支持崩溃恢复,具有自动恢复和故障转移的能力。MyISAM不支持崩溃恢复,可能会导致数据丢失

选择使用InnoDB还是MyISAM取决于具体的需求。如果需要支持事务、并发性能和数据完整性,推荐使用InnoDB。如果对性能要求较低、不需要事务支持或需要全文搜索功能,可以考虑使用MyISAM。然而,需要注意的是,从MySQL 5.5版本开始,InnoDB成为了默认的存储引擎,并且在很多方面优于MyISAM

二.为什么要学习MySQL数据库引擎?

  • 1. 数据库引擎选择:了解不同的数据库引擎,可以根据应用需求选择合适的引擎。每个引擎都有自己的特点和适用场景,例如,InnoDB适合高并发和事务性应用,而MyISAM适合读取密集型应用。正确选择合适的引擎可以提高性能和数据完整性
  • 2. 性能调优:对不同的数据库引擎了解,可以针对性地进行性能调优和优化,以提高数据库的响应速度和吞吐量。不同的引擎在索引、缓存、并发控制等方面有不同的策略和机制,了解这些可以帮助针对性地优化数据库应用程序
  • 3. 数据库设计和开发:学习数据库引擎可以帮助你更好地设计和开发数据库应用。了解引擎的特点和限制有助于在设计数据模型和编写SQL查询时做出更好的决策,以获取更好的性能和数据一致性。此外,对于一些特定的功能和需求,了解引擎的特性可以帮助你选择更合适的解决方案
  • 4. 故障排除和维护:学习数据库引擎可以帮助你更好地理解数据库系统,并能更好地进行故障排除和维护工作。当数据库遇到问题时,熟悉引擎的工作原理和机制可以更快速且准确地定位和解决问题

⭐⭐总之,学习MySQL数据库引擎可以帮助我们成为一名更高效和专业的数据库开发人员或管理员,能够合理选择引擎、优化性能、进行数据库设计和开发,并能够更好地进行故障排除和维护工作

三.存储引擎查看

  • ​​​​​​​​​​​​​​查询存储引擎
    • --显示可用的数据库引擎和默认引擎
      show engines;
  • Support列的值表示某种引擎是否能使用​​​​​​​​​​​​​​

    • Support列值含义
      YES表示可以使用
      NO表示不能使用
      DEFAULT表示该引擎为当前默认的存储引擎
  • 查看默认引擎

    • --查看默认引擎
      SHOW VARIABLES LIKE 'default_storage_engine';
  • 创建表指定存储引擎

    • create table t_student(
      	sid int auto_increment primary key,
      	sname varchar(20),
      	sage int default 0
      ) engine=MyISAM;   --指定存储引擎,例如:MyISAM、InnoDB等等

四.SQL标准的四种隔离级别  

1.概念

①.读未提交(Read Uncommitted)

        在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)

②.读已提交(Read Committed)

        这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了隔离的简单定义:一个事务只能看见已经提交事务所做的改变。这种隔离级别也支持所谓的不可重复读(NonrepeatableRead),因为同一事务的其他实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果

③.可重复读(Repeatable Read):

        这是MySQL的默认事务隔离级别,同一事务的多个实例在并发读取数据时,会看到同样的数据。不过理论上,这会导致另一个棘手的问题:幻读(Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。

④.可串行化(Serializable)

        这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,它是在每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争

2.事务隔离级别问题

  • ①脏读

    • 脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据
      •  T2时刻,事务B把原来张三的成绩由原数据80改为了70,此后又被T3时刻的事务A读取到了,但是T4时刻事务B发生异常,进行了回滚操作。这个过程,我们称70为脏数据,事务A进行了一次脏读
  • ②幻读

    • 幻读是指当事务不独立执行时,插入或者删除另一个事务当前影响的数据而发生的一种类似幻觉的现象。举个例子,某事务在检查表中的数据数count时,是10,过一段时间之后再查是11,这就发生了幻读,之前的检测获取到的数据如同幻觉一样
      • 事务B向表中新插入了一条数据,事务A在T3时刻后查询数据的时候,突然发现数据和以前查询的时候多出了一项,像产生了幻觉一样   
  • ③不可重复读

    • 不可重复读,有时候也会说成“读已提交”。什么意思呢,就是在一个事务内,多次读取同一个数据,却返回了不同的结果。实际上,这是因为在该事务间隔读取数据的期间,有其他事务对这段数据进行了修改,并且已经提交,就会发生不可重复读事故
      • 图示中事务A在T1和T4查询同一语句,却得到了不同的结果,这是因为T2~T3时刻事务B对该数据进行了修改,并提交。这个过程,出现了在一个事务内两次读到的数据却是不一样的,我们称为是不可重复读
  • 💡💡​​​​​​​​​​​​​​辉辉小贴士:三者间的区别

    • 脏读和不可重复读的区别:前者是“读已提交”,后者是“读未提交”

    • 幻读和不可重复读的区别:出现幻读和不可重复读的原因很像,都是在多次操作数据的时候发现结果和原来的不一样了,出现了其他事务干扰的现象。但是,幻读的偏重点是添加和删除数据,多次操作数据得到的记录数不一样;不可重复读的偏重点是修改数据,多次读取数据发现数据的值不一样了​​​​​​

五.ACID事务是什么 

ACID是数据库管理系统(DBMS)中保证事务的可靠性和一致性的一组特性,包括:

  • 1. 原子性(Atomicity):事务被视为一个不可分割的原子操作单元。它要么完全执行,要么完全回滚。如果事务中的任何一部分操作失败,整个事务都将被回滚到最初的状态,保持数据的一致性
  • 2. 一致性(Consistency):事务在执行前后,数据库从一个合法的一致状态转换为另一个合法的一致状态。这意味着事务在执行期间必须遵循所有的约束和规范,以保持数据的完整性和一致性
  • 3. 隔离性(Isolation):并发执行的多个事务之间应该相互隔离,使得每个事务在执行期间感知不到其他事务的存在。事务的隔离性防止了并发执行时的一些问题,如脏读、幻读和不可重复读
  • 4. 持久性(Durability):一旦事务提交成功,其对数据库的更新将永久保存,并且即使在系统故障或重启后也能保持。保证数据的持久性是通过将事务日志写入稳定存储介质来实现的

⭐⭐ACID事务的目标是确保数据库中数据的可靠性和一致性。通过这些特性,ACID事务提供了一种可靠的方式来处理并发访问数据库的情况,确保数据在多个并发操作下的正确性和完整性。这使得应用程序能够以一致和可靠的方式处理事务,同时保护数据库的数据完整性

           好啦,今天的分享就到这了,希望能够帮到你呢!😊😊                  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/35934.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LinuxCP插件virtio与内核vhost

以下为LCP创建的接口对,VPP侧为物理接口port7,映射到Linux侧的为虚拟接口hostap1,接口hostap1作为vhost的后端存在。VPP侧接口tap1为前端的virtio接口。 vpp# show lcp itf-pair: [0] port7 tap1 hostap1 24 type tap vdp# vdp# show interf…

【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(7 月 3 日论文合集)

文章目录 一、分割|语义相关(4篇)1.1 SPAE: Semantic Pyramid AutoEncoder for Multimodal Generation with Frozen LLMs1.2 Achieving RGB-D level Segmentation Performance from a Single ToF Camera1.3 Topological Data Analysis Guided Segment Anything Model Prompt Op…

双非本大二上岸大厂——念念不忘,必有回响

⭐️前言⭐️ 博主就读于一所普通的学校(双非本),在大二下学期3月份开始网上投递简历,历时近百余天,投递简历500,面试近40余场,最终在6月份学期末,斩获了两个大厂offer(北…

开发框架前后端分离的好处是什么

关于将前端和后端保持在一起或分开,存在广泛的意见分歧。唯一重要的是,这两个组件对于开发成熟的应用程序都是必需的。 考虑:紧密耦合的前端和后端 许多人认为后端和前端的分离是一个坏主意,这两个角色之间没有太大区别。 以下…

MySQL-SQL存储过程/触发器详解(下)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏&#xf…

计算机体系结构基础知识介绍之缓存性能的十大进阶优化之编译器优化和硬件预取(六)

优化七:编译器优化,降低miss率 处理器和主内存之间不断扩大的性能差距促使编译器编写者仔细检查内存层次结构,看看编译时优化是否可以提高性能。再次,研究分为指令缺失的改进和数据缺失的改进。接下来介绍的优化可以在许多现代编…

【图像识别】openCV基础知识

图像处理基础 一、使用OpenCV前要准备的工作1.先导入需要用到的库2.自定义,图片展示函数 二、开始学习常用函数1.生成随机整数①. 函数说明②.代码a. 二维灰度图b. 三维彩色图 ③.代码现象a. 二维灰度图b. 三维彩色图 2.通道的分离与合并①先导入一张图片② 将其RGB…

Python获取指定路径下所有文件的绝对路径

import osdef get_file_path_by_name(file_dir, format.JPG):获取指定路径下所有文件的绝对路径:param file_dir::return:L []for root, dirs, files in os.walk(file_dir): # 获取所有文件for file in files: # 遍历所有文件名if os.path.splitext(file)[1] format: L.ap…

typeScript(持续吐血版)

typeScript-02-进阶(TSVue3) 结合vue3来使用TypeScript 使用vite来创建vue3TS的项目 使用vite创建项目,并选择带ts的版本 npm create vitelatest my-vue-ts-app – --template vue-ts 参考链接:https://vuejs.org/guide/typescript/composition-api…

深度学习基础

1 机器学习、深度学习、人工智能 1.1 机器学习 机器学习是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身性能的学科。 基本步骤:获取数据、数据预处理、特征提取、特征选择…

FFmpeg5.0源码阅读—— avcodec_send_packetavcodec_receive_frame

摘要:本文主要描述了FFmpeg中用于解码的接口的具体调用流程,详细描述了该接口被调用时所作的具体工作。   关键字:ffmpeg、avcodec_send_packet、avcodec_receive_frame   读者须知:读者需要了解FFmpeg的基本使用流程&#xf…

MySQL 主从复制[异步 同步 半同步复制] 读写分离 优化 (非常重要)

MySQL 主从复制 1、什么是读写分离? 读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据…

计算机网络概述(三)

常见的计算机网络体系结构 OSI体系结构: 物理层→数据链路层→网络层→运输层→会话层→表示层→应用层 TCP/IP体系结构: 网络接口层→网际层→运输层→应用层 一般用户的设备都有TCP/IP协议用于连接因特网,TCP/IP的网络接口层并没有规定使用…

【Redis】秒杀业务设计、悲观锁与乐观锁

1 全局ID生成器 一些情境下,使用数据库的ID自增将会产生一些问题。 一方面,自增ID规律性明显,可能被猜测出来并产生一些漏洞另一方面,当数据量很大很大很大时,单表数据量可能会受到限制,需要分表&#xf…

网络编程5——TCP协议的五大效率机制:滑动窗口+流量控制+拥塞控制+延时应答+捎带应答

文章目录 前言一、TCP协议段与机制TCP协议的特点TCP报头结构TCP协议的机制与特性 二、TCP协议的 滑动窗口机制 三、TCP协议的 流量控制机制 四、TCP协议的 拥塞控制机制 五、TCP协议的 延时应答机制 六、TCP协议的 捎带应答机制 总结 前言 本人是一个普通程序猿!分享一点自己的…

RabbitMQ在SpringBoot中的高级应用(2)

过期时间 1.单独的设置队列的存活时间,队列中的所有消息的过期时间一样 Bean//创建交换机public DirectExchange ttlQueueExchange(){// 交换机名称 是否持久化 是否自动删除return new DirectExchange("ttl_queue_log",true,false);}Bean//创建队列publ…

吴恩达ChatGPT《LangChain for LLM Application Development》笔记

基于 LangChain 的 LLM 应用开发 1. 介绍 现在,使用 Prompt 可以快速开发一个应用程序,但是一个应用程序可能需要多次写Prompt,并对 LLM 的输出结果进行解析。因此,需要编写很多胶水代码。 Harrison Chase 创建的 LangChain 框…

需求分析引言:架构漫谈(五)架构师成长之路

我研发领域也从事了一些年,期间也做过一些架构设计工作,包括C#单体转型为Java微服务、Python单体转型为Java微服务等, 也尝试着从自己的经验角度,来汇总一些知识点,同时描述一下如何成长为一个合格的软件架构师&#x…

基于SpringBoot+Vue+微信小程序的电影平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 研究背景:…

Docker 中的 .NET 异常了怎么抓 Dump (转载)

一、背景 1. 讲故事 有很多朋友跟我说,在 Windows 上看过你文章知道了怎么抓 Crash, CPU爆高,内存暴涨 等各种Dump,为什么你没有写在 Docker 中如何抓的相关文章呢?瞧不上吗? 哈哈,在DUMP的分析旅程中&a…