MySQL存储引擎解析

深度解析 MySQL 存储引擎 MySQL存储引擎深度解析与选型指南:本文系统剖析了InnoDB、MyISAM等核心引擎的机制特性与优化方案,详细对比了第三方引擎的适用场景。重点介绍了生产环境中的引擎转换策略,包括主从同步处理、外键约束维护及空间计算等关键技术。通过三维选型模型和版本兼容性分析,为企业提供从OLTP到实时分析的完整决策框架,并附有详细的转换检查清单,帮助DBA安全高效地完成引擎迁移。 阅读详情

📕我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)清华大学出版社签约作家、Java领域优质创作者、优快云博客专家、阿里云专家博主、51CTO专家博主、产品软文专业写手、技术文章评审老师、技术类问卷调查设计师、幕后大佬社区创始人、开源项目贡献者。

📘拥有多年一线研发和团队管理经验,研究过主流框架的底层源码(Spring、SpringBoot、SpringMVC、SpringCloud、Mybatis、Dubbo、Zookeeper),消息中间件底层架构原理(RabbitMQ、RocketMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、Apache ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、Kubernetes容器编排等。不定期分享高并发、高可用、高性能、微服务、分布式、海量数据、性能调优、云原生、项目管理、产品思维、技术选型、架构设计、求职面试、副业思维、个人成长等内容。

Java程序员廖志伟

🌾阅读前,快速浏览目录和章节概览可帮助了解文章结构、内容和作者的重点。了解自己希望从中获得什么样的知识或经验是非常重要的。建议在阅读时做笔记、思考问题、自我提问,以加深理解和吸收知识。阅读结束后,反思和总结所学内容,并尝试应用到现实中,有助于深化理解和应用知识。与朋友或同事分享所读内容,讨论细节并获得反馈,也有助于加深对知识的理解和吸收。💡在这个美好的时刻,笔者不再啰嗦废话,现在毫不拖延地进入文章所要讨论的主题。接下来,我将为大家呈现正文内容。

优快云

一、存储引擎层

核心引擎特性

MySQL的存储引擎是其数据库架构的基石,它直接关系到数据存储的效率和数据库的整体性能。InnoDB和MyISAM是两种主流的存储引擎,它们在实现细节上有着显著的不同。

  • InnoDB:InnoDB引擎是基于多版本并发控制(MVCC)的,它通过事务日志(transaction log)来保证数据的一致性和持久性。InnoDB的事务支持实现了ACID属性,这意味着每个事务都是原子的(Atomicity)、一致的(Consistency)、隔离的(Isolation)和持久的(Durability)。InnoDB使用行级锁定(row-level locking),这意味着它可以最小化锁定资源,从而提高并发性能。此外,InnoDB还支持外键约束,使得数据库的完整性得到了保障。
InnoDB缓冲池机制

InnoDB缓冲池(Buffer Pool)是InnoDB存储引擎的核心,它负责缓存数据页和索引页,以减少磁盘I/O操作。缓冲池的大小直接影响数据库的读写性能。InnoDB缓冲池的内部实现使用了LRU(最近最少使用)算法来管理页的缓存。

MyISAM索引结构

MyISAM引擎使用B+树索引结构,这种索引结构非常适合用于范围查询。MyISAM的索引文件和数据文件是分离的,这使得索引可以独立于数据文件进行备份和恢复。

Memory引擎适用场景

Memory引擎(也称为RAM存储引擎)适用于存储临时数据或者不需要持久化的数据。Memory引擎的所有数据都存储在内存中,因此它的读写速度非常快。然而,由于数据保存在内存中,一旦系统崩溃,数据将丢失。

存储架构

MySQL的存储架构复杂而精细。表空间(Tablespace)是MySQL用于存储数据、索引和日志文件的一个逻辑单元。表空间内部可以包含多个数据文件和索引文件。行格式(Row Format)决定了如何存储行数据,不同的行格式有不同的存储效率。

  • 表空间管理:MySQL支持多种表空间类型,如InnoDB表空间、MyISAM表空间等。InnoDB表空间是自动扩展的,而MyISAM表空间的大小在创建时必须指定。
  • 行格式:MySQL提供了多种行格式,包括Compact、Dynamic和Redundant。每种行格式都有其优缺点,例如,Compact行格式在存储上最为紧凑,而Dynamic行格式提供了更多的灵活性。
  • 页分裂机制:当数据插入导致页空间不足时,MySQL会进行页分裂。页分裂会消耗额外的CPU资源,并可能影响性能。

二、SQL执行体系

查询处理

MySQL的查询处理是一个复杂的过程,涉及到多个组件的协同工作。

  • 解析器工作原理:MySQL解析器首先将SQL语句分解为词法单元,然后进行语法分析,生成解析树(Parse Tree)。解析树包含了SQL语句的语法结构和语义信息。
  • 优化器成本模型:优化器使用成本模型来评估不同的查询执行计划,选择成本最低的计划。成本模型考虑了磁盘I/O、CPU计算和内存使用等因素。
执行计划分析(EXPLAIN)

EXPLAIN命令是数据库管理员和开发人员常用的工具,它可以帮助我们了解MySQL是如何执行SQL查询的。EXPLAIN命令会显示查询的执行计划,包括表扫描、索引扫描、排序和连接操作等。

高级语法

MySQL的高级语法提供了强大的数据操作能力。

  • 窗口函数(Window Functions):窗口函数可以对一组值进行计算,并返回单个值。例如,可以使用窗口函数计算每个销售人员的年度销售额。
  • 公用表表达式(CTE):CTE允许定义一个临时结果集,这个结果集可以被多次引用,使得查询更加清晰和易于理解。
  • 递归查询:递归查询可以用来解决递归问题,如层次结构查询。
JSON路径表达式

MySQL的JSON数据类型和函数为处理JSON数据提供了便利。

  • JSON数据类型:MySQL支持存储JSON数据,并提供了一系列的函数来操作JSON数据。
  • JSON函数:例如,JSON_EXTRACT函数可以用来提取JSON对象中的值,而JSON_SET函数可以用来更新JSON对象中的值。

三、事务机制

隔离级别

事务的隔离级别是数据库事务的一个重要特性,它决定了事务之间的相互影响。

  • 幻读解决原理:为了防止幻读,InnoDB使用次级锁定,即在插入或删除操作时锁定索引记录之间的间隙。
  • 间隙锁实现:间隙锁可以防止对索引记录间隙的插入和删除操作,从而避免幻读现象。
  • MVCC版本链:MVCC通过维护每个数据页的版本链来支持事务的隔离性。每个事务都有一个唯一的事务ID,用于追踪数据页的版本。
日志系统

MySQL的日志系统是保证数据一致性和持久性的关键。

  • undo log:undo log记录了事务开始前的数据状态,当事务回滚时,undo log可以用来撤销已提交的修改。
  • redo log:redo log记录了事务提交时对数据所做的修改,当系统崩溃时,redo log可以用来恢复数据。
  • binlog:binlog(Binary Log)记录了所有数据的变更,它是MySQL复制和备份的基础。
事务管理

MySQL支持事务的ACID属性,这是数据库事务最基本的要求。

  • 原子性:事务中的所有操作要么全部成功,要么全部失败。
  • 一致性:事务执行的结果必须使数据库从一个一致性状态转换到另一个一致性状态。
  • 隔离性:事务的执行不能被其他事务干扰。
  • 持久性:一旦事务提交,其所做的更改就应该是永久性的。

四、索引体系

索引类型

MySQL支持多种索引类型,每种索引类型都有其适用的场景。

  • 全文索引(N-gram):全文索引用于全文搜索,它通过将文本分割成N-gram来提高搜索效率。
  • 空间索引(R-Tree):空间索引用于地理空间数据,它支持空间查询和空间分析。
优化策略

索引优化是提高查询性能的关键。

  • 索引下推:索引下推是一种优化技术,它将过滤条件直接应用于存储引擎,减少返回给MySQL Server的数据量。
  • 覆盖索引:覆盖索引包含查询需要的所有列,无需访问数据行,从而提高查询效率。
  • 索引合并:索引合并将多个索引合并为一个,从而提高查询效率。

五、高可用架构

复制技术

MySQL的复制技术可以实现数据备份和扩展读取能力。

  • GTID复制原理:GTID(全局事务标识符)确保了复制的原子性和一致性,它通过唯一标识每个事务来保证数据的一致性。
  • 半同步复制:半同步复制至少需要有一个从服务器确认事务已提交,这提高了数据的安全性。
  • 组复制(MGR):组复制是多源复制,它提供了高可用性和故障转移。
集群方案

MySQL集群方案包括InnoDB Cluster和ProxySQL路由。

  • InnoDB Cluster:InnoDB Cluster提供自动故障转移和数据复制,它是一个高度集成的解决方案。
  • ProxySQL:ProxySQL是一个负载均衡器,它可以用于查询路由和负载均衡。
Orchestrator管理

Orchestrator是一个用于管理MySQL集群的工具,它可以自动化故障转移和数据复制。

六、性能调优

参数优化

MySQL的配置参数对性能有很大影响。

  • 连接池配置:连接池的大小需要根据系统负载和用户并发数进行调整,以减少连接开销。
  • 排序缓冲区:排序缓冲区的大小影响排序操作的性能,需要根据数据量进行调整。
临时表策略

MySQL使用临时表来存储中间结果。

  • 合理使用临时表:在处理大量数据时,合理使用临时表可以提高性能。
  • 表缓存:MySQL的表缓存可以存储经常访问的表,从而减少磁盘I/O。
监控工具

MySQL提供多种监控工具,可以帮助我们了解数据库的性能。

  • Performance Schema:Performance Schema提供了实时监控数据库性能的接口。
  • Sys Schema:Sys Schema提供了系统级别的监控信息。
Slow Query分析

分析慢查询日志可以帮助我们识别性能瓶颈。

  • 慢查询日志:MySQL的慢查询日志记录了执行时间超过特定阈值的查询。
  • 性能瓶颈识别:通过分析慢查询日志,我们可以识别出需要优化的查询和索引。

优快云

📥博主的人生感悟和目标

Java程序员廖志伟

希望各位读者大大多多支持用心写文章的博主,现在时代变了,信息爆炸,酒香也怕巷子深,博主真的需要大家的帮助才能在这片海洋中继续发光发热,所以,赶紧动动你的小手,点波关注❤️,点波赞👍,点波收藏⭐,甚至点波评论✍️,都是对博主最好的支持和鼓励!

- 💂 博客主页: Java程序员廖志伟
- 👉 开源项目: Java程序员廖志伟
- 🌥 哔哩哔哩: Java程序员廖志伟
- 🎏 个人社区: Java程序员廖志伟
- 🔖 个人微信号: SeniorRD

Java程序员廖志伟

📙经过多年在优快云创作上千篇文章的经验积累,我已经拥有了不错的写作技巧。同时,我还与清华大学出版社签下了四本书籍的合约,并将陆续出版。这些书籍包括了基础篇、进阶篇、架构篇的📌《Java项目实战—深入理解大型互联网企业通用技术》📌,以及📚《解密程序员的思维密码--沟通、演讲、思考的实践》📚。具体出版计划会根据实际情况进行调整,希望各位读者朋友能够多多支持!

🔔如果您需要转载或者搬运这篇文章的话,非常欢迎您私信我哦~

MySQL之存储引擎转换与版本演进深度解析 在数据库开发的领域中,MySQL凭借其丰富的功能和灵活的架构,深受开发者的喜爱。今天,咱们一起深入学习MySQL中存储引擎转换的方法以及版本演进的历史,希望大家在这个过程中都能有所收获,共同进步。 阅读详情

相关推荐

MySQL之存储引擎:选型、应用场景与转换全解析

在数据库开发领域,MySQL以其丰富的存储引擎生态为开发者提供了多样化的选择。深入理解这些存储引擎的特性、适用场景以及如何进行选择和转换,对于构建高效稳定的数据库应用至关重要。今天,咱们就一起来深入学习MySQL存储引擎相关知识,共同进步。

wj_rdk的博客 1600

深入解析 MySQL 存储引擎架构

存储引擎作为数据库系统的核心组件,负责数据管理和物理存储。其高效运作依赖于精心设计的内存结构、磁盘文件系统以及标准化的接口交互。下面我们将深入剖析这三个关键部分的实现细节。MySQL 采用插件式存储引擎架构,支持十余种不同的存储引擎(如 InnoDB、MyISAM、Memory、Archive、CSV、Blackhole、Federated 等),但实际生产环境中常用的仅有 3-4 种。索引结构差异(B+树、哈希等)锁机制差异(表锁、行锁、意向锁等)事务支持程度(ACID 特性)

Toroto5的博客 1026

MySQL 存储引擎与服务体系深度解析

存储引擎:MySQL服务的核心组件,负责数据的存储、检索和管理版本演进MySQL 5.0/5.1 默认使用MyISAM引擎MySQL 5.5/5.6+ 默认采用InnoDB引擎。

cv:小怪 893

MySQL之InnoDB存储引擎深度解析

InnoDB存储引擎是当前应用最广泛的存储引擎之一,以出色的事务处理能力、数据完整性保障以及高并发性能,成为企业级应用开发的首选。无论是电商系统的订单处理,还是金融系统的资金流转,InnoDB都能稳定且高效地支撑业务运行。本文我将全面介绍InnoDB存储引擎的架构设计、核心原理、关键特性,并结合实战优化策略,带你全面掌握这一重要技术

aa_hdkf_vg的博客 1226

43、MySQL存储引擎配置全解析

本文深入解析了MySQL存储引擎的配置方法与优化策略,涵盖MyISAM、InnoDB和Falcon引擎的特点、适用场景及详细配置步骤。通过合理配置存储引擎,可显著提升数据库性能和管理效率。文章还提供了最佳实践、常见问题解决方案及配置流程图,帮助读者全面掌握MySQL存储引擎的使用与优化技巧。

oil88的博客 74

大智慧L2实时api接口的逐笔委托功能执行代码分享

用过l2行情接口的投资者应该都了解大部分的接口都是有逐笔委托功能的,那么大智慧L2实时api接口也有着很强大的逐笔委托功能,投资者可以通过这个逐笔委托功能可以看到一个股票的每天出现的全部委托指令,那么在这个逐笔委托功能里包含了委托价格、委托时间、委托量和委托方向四个要素!那么接下来小编就分享一下大智慧L2实时api接口的逐笔委托功能执行代码!那么在这里提个醒:投资者可以在大智慧L2实时api接口进行设置过滤,在逐笔委托列表里,就仅仅只会显示超过设置委托量或委托额的委托单,而不再显示小单。

Qq_2037696191的博客 3734

MySQL存储引擎--深度解析

存储引擎的选择。InnoDB和 MyISAM主要有什么区别?InnoDB的 Buffer Pool了解吗? (补充) Buffer Pool是什么?作用?Buffer Pool的默认大小是多少?buffer_pool的默认大小InnoDB对LRU算法的优化了解吗?

JIGUANGDI 789

从零到自动化:用Python脚本搞定华为CE12800的NETCONF初始配置(含完整代码)

本文详细介绍了如何使用Python脚本实现华为CE12800交换机的NETCONF初始配置自动化。从环境准备、脚本架构设计到SSH连接与NETCONF配置实战,提供了完整的代码示例和错误处理建议,帮助运维工程师高效完成网络设备自动化配置,提升工作效率。

weixin_42525551的博客 401

MySQL存储引擎深度解析与实战指南

摘要: MySQL存储引擎是数据库核心组件,负责数据存储、检索和事务处理。主流引擎对比: InnoDB(默认):支持ACID事务、行级锁、MVCC,适合高并发OLTP MyISAM:表级锁、无事务,适合只读场景 Memory:内存存储,速度快但易丢失 Archive:高压缩比,适合日志归档 关键点: InnoDB采用B+树聚簇索引,通过缓冲池优化I/O 存储引擎直接影响性能,选型需考虑事务、并发和恢复需求 配置建议:设置足够大的innodb_buffer_pool_size 特殊场景可选RocksDB(高压

2301_80215285的博客 1557

Blender----利用DEM(tif)生成三维模型

利用DEM(tif)生成三维模型

LongJ_Sir的博客 5428

ComfyUI实战:AnimateDiff与ControlNet结合,打造无缝风格化视频转绘

本文详细介绍了如何利用ComfyUI平台,结合AnimateDiff与ControlNet插件,实现高质量的视频风格化转绘。通过搭建节点工作流、调整关键参数,有效解决画面闪烁与失真问题,并分享了进阶玩法与常见问题解决方案,帮助用户轻松打造流畅、风格统一的动态视觉效果。

weixin_29039773的博客 342

mysql sql语法解析器_MySQL的SQL解析器和存储引擎层

客户端通过以SQL语句的形式发送请求给服务器端从而从表中获取数据或对表数据进行修改。而服务端程序使用以下两层处理模型以执行每个语句请求:dbdao.com上层包括SQL解析器(parser)和优化器(optimizer)。下层包括了一组存储引擎。需要注意的是,SQL层并不依赖于存储引擎管理的表。这意味着客户端通常不需要考虑哪个引擎被涉及处理其SQL语句,也不用考虑访问和更新的表是受到哪个引擎的管理...

weixin_30270715的博客 1045

Qt Bridge for Figma

《QtBridge for Figma设计开发协作工具详解》摘要(149字) QtBridge for Figma是连接Figma设计工具与Qt框架的官方插件,实现UI设计到QML代码的自动化转换。核心功能包括:自动生成QML代码、设计系统变量提取、资源文件导出,支持双向同步和组件映射。工作流程涵盖设计标注、配置导出和代码生成三阶段,提供设计令牌、响应式布局等高级特性。该工具支持Qt5.15+/6.0+版本,通过标准化协作流程显著提升设计开发效率,确保视觉与代码一致性,适用于中英文项目开发。

追赶时代的博客 522

MySQL进阶:(第一篇) 深入解析MySQL存储引擎架构

MySQL采用分层体系结构,包括连接层(处理客户端连接和认证)、服务层(SQL处理与优化)、引擎层(数据存储与检索)和存储层(文件系统交互)。主要存储引擎包括:1)InnoDB(默认引擎,支持事务、行锁和外键,使用表空间文件存储数据);2)MyISAM(早期引擎,不支持事务但访问速度快,数据与索引分文件存储);3)Memory(内存存储,适合临时表和缓存)。选择引擎需考虑应用需求:InnoDB适合高事务要求场景,MyISAM适合读密集型应用,Memory适用于临时数据存储。

m0_73073987的博客 1158

YOLOv8 改进涨点 | 模块即插即用 直接可用

在目标检测任务中,注意力机制能够帮助模型聚焦于图像中的关键区域,显著提升检测精度。。创建模块代码注册模块修改任务解析tasks.py创建YAML配置文件模块核心优势适用场景计算开销SOCA捕获二阶统计信息,增强通道间相关性需要精细特征区分的场景中等SK自适应多尺度核选择多尺度目标检测中等偏高显式特征聚集-分配机制全局上下文建模中等A2-Net双线性注意力,高效全局交互复杂场景理解中等偏高CrissCross线性复杂度全局上下文高分辨率输入,长距离依赖较低。

u012133341的博客 2259

ARM6818嵌入式视频播放器:硬解加速与Framebuffer渲染实战

嵌入式Linux音视频系统是智能座舱、工业HMI等场景的核心能力,其本质是软硬协同的实时多媒体处理系统。原理上需打通内核驱动(如VPU硬件编解码、FIMD多图层合成)、用户空间框架(GStreamer pipeline定制、SDL2硬件渲染)与应用层同步机制(PTS/HTS双时钟校准)。技术价值在于显著降低CPU负载(硬解可压至15%以下)、提升启动速度(<1.2s首帧)并保障音画同步精度(±3ms级)。典型应用场景包括车载信息娱乐、边缘AI终端及无X11的工控显示设备。本文基于ARM6818平台,深入VP

weixin_32456485的博客 78

MySQL中的存储引擎的解析

在MySQL中有一个存储引擎的概念,在平时的实际工作中,我们需要针对不同的存储需求可以选择最优的存储引擎。在此我将一些关于存储引擎的概念、分类以及实际应用中的选择原则做一点简单的解析。 1.MySQL 存储引擎概述        插件式存储引擎是 MySQL 数据库最重要的特性之一,用户可以根据应用的需要选择如何存储和索引数据、是否使用事务等。MySQL 默认支持多种存储引擎,以适

jslzcydd的博客 414

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深入解析 MySQL 的 MyISAM 和 InnoDB 存储引擎

在 MySQL 数据库中,存储引擎是负责存储和检索数据的核心组件。不同的存储引擎有不同的特点和适用场景。其中,MyISAM 和 InnoDB 是 MySQL 中最为人熟知的两个存储引擎。本文将深入探讨这两个存储引擎的区别,帮助您更好地理解它们的特性以及如何根据实际需求选择合适的存储引擎。

兀行者的博客 1187

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

mysql:MySQL存储引擎深度解析与工程实践

fill:#333;color:#333;color:#333;fill:none;InnoDBMyISAMMemoryRocksDBSQL接口层查询解析器优化器存储引擎选择事务/行锁/聚簇索引表锁/非事务/全文索引内存表/临时表LSM树/高写入。

weixin_43290370的博客 1100

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Mysql中各种存储引擎解析

存储引擎概述 和大多数的数据库不同,MySQL中有一个存储引擎的概念,针对不同的存储需求可以选择最优的存储引擎。 存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式。存储引擎是基于表的,而不是基于库的。所以存储引擎也可被称为表类型。 Oracle,SqlServer等数据库只有一种存储引擎。MySQL提供了插件式的存储引擎架构。所以MySQL存在多种存储引擎,可以根据需要使用相应的引擎,或者编写存储引擎。 MySQL5.0支持的存储引擎包含: InnoDB MyISAM BDB MEMORY

悟空Edison的博客 194

MySQL 8.0存储引擎解析

My SQL 8.0存储引擎解析 MYISAM 存储引擎 MyISAM基于旧的(并且不再可用)ISAM存储引擎,但有许多有用的扩展。 每个MyISAM表被存储在磁盘中的两个文件中。这些文件具有以表名开头的名称,并有一个扩展来指示文件类型。数据文件具有.MyDD(MyDATA)扩展名。索引文件具有.MyI(MyIndex)扩展名。表定义存储在MySQL数据字典中。 MyISAM表具有...

梅森上校的博客 业精于勤荒于嬉,形成于思毁于随。 2064

MySQL存储引擎索引实现解析

MySQL存储引擎是表的存储引擎 1.Myisam存储引擎 1.1.Myisam存储引擎底层表的存储结构如下 user.frm 文件存储表的表结构 user.MYD 文件存储表的数据行记录 user.MYI 文件存储表的索引字段 1.2 Myisam底层SQL查询过程 假如查找col1=49,先判断col1是否是索引字段,如果是索引字段, 就在MYI文件查找磁盘文件地址针,根据B+树的特点查找磁盘文件地址针, 并一次性定位到MYD文件的行元素 2.InnoDB存储引擎 * 2.1.InnoDB

qq_22075913的博客 257

深入解析 MySQL 存储引擎:InnoDB vs MyISAM

InnoDB 和 MyISAM 各有千秋,选择合适的存储引擎需要根据具体的应用需求来决定。对于需要事务支持和高并发环境的应用,InnoDB 是更好的选择;而对于简单的查询操作和全文搜索需求,MyISAM 可能更具优势。希望本文能够帮助你更好地理解这两种存储引擎,并在实际开发中做出明智的选择。```

2501_90691479的博客 1604

【MySQL数据库】存储引擎的详细解析和方式

存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。mysql5.5版本之后默认的引擎是InnoDB,可以根据sql语句查看建表语句#查看建表语句 默认存储引擎是InnoDB。

程序源日志的博客 315
上一篇: MySQL核心技术解析
下一篇: Spring框架核心技术解析
Java廖志伟
博客等级 码龄2年 3609粉丝 1517原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值