自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 mysql之锁机制深度解析

锁是数据库系统中用于管理并发访问的关键机制,确保数据的一致性和完整性。当多个事务同时访问相同数据时,如果没有锁机制,可能导致数据不一致、脏读、不可重复读、幻读等问题。MySQL 提供了多种锁机制应对不同的并发场景。MySQL 的锁机制是保证数据一致性和并发控制的重要手段。理解不同类型的锁、锁的粒度、锁与索引的关系、以及不同隔离级别下的锁行为,对于开发高性能、高并发的数据库应用至关重要。在实际应用中,需要根据具体的业务场景选择合适的锁策略(悲观锁、乐观锁、分布式锁等),监控锁的状态,并注意避免死锁。

2025-02-23 14:25:38 820

原创 MySQL之Undo Log 深度解析

Undo Log 不仅用于事务回滚,还为 MVCC 提供了版本控制的基础。合理配置 Undo Tablespace,监控空间使用率。长事务会占用大量 Undo Log 空间,导致 Purge 线程清理速度跟不上生成速度。Redo Log 保证持久性,Undo Log 保证原子性和 MVCC 隔离性。OLTP 系统中定期监控 Undo 空间使用,避免长事务导致的版本链膨胀。对于需要保存历史版本,可考虑使用 Flashback 技术或临时关闭自动清理机制。

2025-02-23 14:25:22 884

原创 MySQL之Redo Log:确保数据持久性和崩溃恢复

Redo Log(重做日志)是 MySQL InnoDB 存储引擎中实现持久性的基石。它是一种物理日志,记录了对数据页所做的修改,而不是行级别的变更。这种“物理”特性使其在崩溃恢复时更加紧凑和高效。在将更改应用到数据文件之前先记录日志。这确保了即使数据库在修改后的数据页写入磁盘之前崩溃,已提交的事务也不会丢失。Redo Log 有效地体现了承诺:“已提交的内容一定会完成,即使在崩溃后也是如此。深入理解预写式日志 (WAL) 的工作原理。根据应用场景合理配置 Redo Log 参数。

2025-02-23 14:24:57 915

原创 mysql之事务深度解析与实战应用:保障数据一致性的基石

深刻理解 ACID 特性是掌握事务的核心。根据应用场景选择合适的事务隔离级别。通常是最佳选择。使用COMMITROLLBACK等语句显式控制事务边界。事务范围应尽可能小,只包含必要的数据库操作。避免长时间运行的事务。长事务会占用数据库资源, 降低系统性能, 并可能导致锁等待, 死锁等问题. 如果业务流程确实需要长时间运行,可以考虑将大事务拆分成多个小事务,或者使用其他技术手段 (例如,消息队列、最终一致性) 来解决。避免过度使用事务,或者不合理地使用事务。

2025-02-22 15:47:14 838

原创 mysql之Innodb收集统计信息详解

统计信息是关于表和索引数据分布的元数据,帮助优化器估算不同执行计划的成本,并选择最优方案。准确的统计信息是 CBO (Cost-Based Optimizer) 做出明智决策的基础。参考:https://relph1119.github.io/mysql-learning-notes/#/mysql ,推荐理解本文之后去看原书,原书有一定深度需前后贯穿仔细理解。MySQL 查询优化器依赖于准确的统计信息来做出最佳的执行计划决策。对于 InnoDB 存储引擎,统计信息的收集至关重要,它是优化器的 “粮草”。

2025-02-22 15:44:07 1145

原创 mysql之InnoDB Buffer Pool 深度解析与性能优化

InnoDB Buffer Pool 是 MySQL InnoDB 存储引擎中至关重要的内存组件,它作为磁盘数据页和 CPU 之间的缓冲层,显著提升了数据访问速度,是 MySQL 性能优化的核心。深入理解 Buffer Pool 的工作原理和调优策略,对于构建高性能 MySQL 应用至关重要。InnoDB Buffer Pool 是 MySQL 性能优化的基石,合理配置和调优 Buffer Pool 可以显著提升数据库性能。

2025-02-22 15:39:11 1623

原创 mysql之MySQL 优化器追踪 (Optimizer Trace):洞察优化器决策的每一个细节

MySQL Optimizer Trace 是查询优化领域的 “核武器”。它提供了前所未有的优化器内部信息, 让我们能够深入了解优化器的决策过程。虽然 Optimizer Trace 的学习曲线较陡峭, 但一旦掌握, 它将成为解决复杂查询性能问题的终极利器。参考:https://relph1119.github.io/mysql-learning-notes/#/mysql ,推荐理解本文之后去看原书,原书有一定深度需前后贯穿仔细理解。

2025-02-22 15:36:57 1122

原创 mysql之EXPLAIN 详解

EXPLAIN命令是 MySQL 查询优化的 “瑞士军刀”。熟练掌握EXPLAIN的输出字段含义,结合案例分析,能帮助我们深入理解 MySQL 执行计划,快速定位性能瓶颈,找到优化方案,构建高性能的 MySQL 应用。参考:https://relph1119.github.io/mysql-learning-notes/#/mysql ,推荐理解本文之后去看原书,原书有一定深度需前后贯穿仔细理解。

2025-02-22 15:33:43 1048

原创 mysql之规则优化器RBO

MySQL 基于规则的优化 (RBO) 是查询优化器中不可或缺的一部分。它通过快速的模式匹配和规则应用,对 SQL 查询进行初步的 “整形美容”,提升查询的可读性和执行效率。虽然 RBO 的优化能力相对有限,但它仍然是现代 MySQL 优化器的重要组成部分,与 CBO 协同工作, 共同打造高效的数据库查询引擎。参考:https://relph1119.github.io/mysql-learning-notes/#/mysql ,推荐理解本文之后去看原书,原书有一定深度需前后贯穿仔细理解。

2025-02-22 15:31:19 1024

原创 mysql之InnoDB 统计信息收集

统计信息是关于表和索引数据分布的元数据,帮助优化器估算不同执行计划的成本,并选择最优方案。准确的统计信息是 CBO (Cost-Based Optimizer) 做出明智决策的基础。参考:https://relph1119.github.io/mysql-learning-notes/#/mysql ,推荐理解本文之后去看原书,原书有一定深度需前后贯穿仔细理解。MySQL 查询优化器依赖于准确的统计信息来做出最佳的执行计划决策。对于 InnoDB 存储引擎,统计信息的收集至关重要,它是优化器的 “粮草”。

2025-02-22 15:27:40 971

原创 MySQL 成本优化器 (CBO) 深度解析

MySQL 成本优化器 (CBO) 是数据库性能优化的核心。理解 CBO 的工作原理,并结合以下几点,可以充分发挥 CBO 的优化能力:准确的统计信息合理的索引设计高效的 SQL 查询语句。

2025-02-22 15:23:03 1111

原创 MySQL之表连接深度解析:原理、类型、算法与优化

mysql之表连接解析

2025-02-22 15:20:59 1233

原创 MySQL 单表访问方法详解

mysql访问表数据的方法讲解

2025-02-22 15:16:15 1105

原创 mysql的数据目录和表空间

讲解mysql的数据目录和表空间

2025-02-22 15:04:30 768

原创 mysql之B+ 树索引 (InnoDB 存储引擎)机制

详细讲解Mysql的b+树索引机制

2025-02-22 14:52:53 725

原创 mysql之Innodb数据页

存储管理:动态空间分配与碎片重用,平衡空间利用率与性能。查询优化:页目录和有序链表结构,支持高效点查与范围扫描。可靠性:校验和与LSN机制确保数据完整性,应对意外中断。理解数据页结构对数据库调优(如合理选择行格式、监控页分裂、调整参数)、故障排查(如空间碎片分析)和性能优化具有重要指导意义。

2025-02-22 14:49:52 682

原创 mysql-Innodb记录结构深度解析

行格式选择:默认使用Dynamic(MySQL 5.7+),平衡空间与性能。CHAR适合定长数据(如MD5),减少碎片。VARCHAR节省空间,但频繁更新可能产生碎片。避免行溢出:大字段(如TEXT/BLOB)建议分离存储或使用压缩。NULL优化:尽量使用NOT NULL,减少NULL列表开销。通过理解InnoDB记录结构,可针对性优化表设计,提升存储效率与查询性能。

2025-02-22 14:47:21 667

原创 mysql的字符集和比较规则

MySQL通过多级别字符集和比较规则实现灵活的字符串管理。正确配置需注意客户端与服务器的一致性,优先使用utf8mb4以兼容现代应用需求,同时避免因字符集转换导致的数据错误。一、字符集(Character Set)二、比较规则(Collation)深度解读mysql是怎样运行的。三、客户端与服务器的字符集转换。

2025-02-22 14:42:16 608

原创 Springboot项目中线程池使用整理

整理线程池的常用使用方式

2024-12-11 23:09:05 2141

原创 Java内存管理与调优实践--JVM内存管理垃圾收集器上手实践

java内存管理与调优实践--jvm调优垃圾收集器对比上手实践

2024-12-08 20:06:04 760

原创 Java内存管理与调优实践-内存管理优化

jvm调优上手实践新人向第二篇,内存管理优化

2024-12-08 01:35:40 1042

原创 Java内存管理与调优实践--内存泄漏分析

jvm调优上手实践,一眼秒懂

2024-12-08 01:29:31 1145

原创 Logback通用日志字段加密探讨

讲解了如何通过logback实现日志的加密

2024-12-01 23:07:29 798

原创 pdf格式转换--开源项目marker的安装使用(附wsl环境配置cuda和开发环境)

pdf格式转换器

2024-12-01 22:13:56 1866

原创 在 Windows 下彻底卸载 Ubuntu 双系统简单操作

双系统卸载ubuntu

2024-09-30 14:50:20 1537

原创 Ubuntu 安装 NVIDIA 驱动导致黑屏详细解决方案

在 Ubuntu 系统上,安装 NVIDIA 驱动后出现黑屏或无法进入图形界面的情况,可能由驱动冲突、配置错误或兼容性问题引起。通过卸载 NVIDIA 驱动、安装开源驱动 nouveau、重新安装图形界面环境、重置 Xorg 配置和更换显示管理器等步骤,通常可以解决问题。遇到类似问题时,建议按照上述步骤逐一排查,恢复系统的正常运行。提示:在进行系统级别的操作时,务必确保命令的正确性,并在必要时备份重要数据。

2024-09-30 00:13:07 8319 13

原创 Activiti快速使用

Acticiti快速使用

2022-10-05 21:14:22 716 1

原创 Shiro使用

关于shiro的使用方法

2022-08-15 19:59:44 2803 1

原创 SSM常用注解总结及部分整合方法

SSM常用注解及方法整合

2022-07-12 12:45:40 504

原创 Socket通信API详细解析

socket通信用到的API详细解析

2022-03-24 19:32:32 1012 1

原创 线程的创建和使用

内核中的线程线程控制原语

2022-03-22 16:08:48 425

原创 进程间通信之同步

进程间通信之同步:关于锁、条件变量、信号量的使用

2022-03-21 23:51:27 649

原创 进程间通信之信号

关于信号的常规函数和操作

2022-03-21 20:01:45 243

原创 进程间通信之管道pipe与fifo

管道pipe()和fifo()的创建和使用

2022-03-19 19:49:59 1135

原创 都说vim大法好(如何打造一款属于自己的vim)

vim配置

2022-03-19 18:28:42 2829

原创 进程的创建与回收

关于进程的创建与回收

2022-03-18 14:25:50 1602

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除