- 博客(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之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
原创 Ubuntu 安装 NVIDIA 驱动导致黑屏详细解决方案
在 Ubuntu 系统上,安装 NVIDIA 驱动后出现黑屏或无法进入图形界面的情况,可能由驱动冲突、配置错误或兼容性问题引起。通过卸载 NVIDIA 驱动、安装开源驱动 nouveau、重新安装图形界面环境、重置 Xorg 配置和更换显示管理器等步骤,通常可以解决问题。遇到类似问题时,建议按照上述步骤逐一排查,恢复系统的正常运行。提示:在进行系统级别的操作时,务必确保命令的正确性,并在必要时备份重要数据。
2024-09-30 00:13:07
8319
13
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人