随笔分类 -  MySQL

摘要:MySQL 插入一条 SQL 语句,redo log 记录的内容 在 MySQL 的 InnoDB 存储引擎中,redo log(重做日志)主要用来保证事务的持久性和崩溃恢复能力。redo log 记录的是对数据页的物理变更,而不是 SQL 语句本身。 当执行一条插入语句时,redo log 的记录 阅读全文
posted @ 2024-12-15 20:22 Eiffelzero 阅读(60) 评论(0) 推荐(0) 编辑
摘要:MySQL 在设计表(建表)时需要注意的要点 设计数据库表是 MySQL 开发中非常重要的一环。合理的表结构设计可以提升性能、减少存储开销,并提高维护性。以下是一些关键的注意事项: 1. 明确需求和数据建模 在建表前,应深入了解业务需求,完成详细的数据建模。 使用工具(如 ER 图)设计清晰的表结构 阅读全文
posted @ 2024-12-15 20:21 Eiffelzero 阅读(96) 评论(0) 推荐(0) 编辑
摘要:MySQL 三层 B+ 树能存多少数据? MySQL 的 B+ 树索引结构广泛用于存储引擎(如 InnoDB)中,用于实现高效的查询。B+ 树的高度和每一层的节点数量直接影响其存储能力。以下是计算三层 B+ 树能存储的数据量的过程。 B+ 树的存储结构概述 节点大小: 在 InnoDB 中,B+ 树 阅读全文
posted @ 2024-12-15 20:19 Eiffelzero 阅读(274) 评论(0) 推荐(0) 编辑
摘要:MySQL 事务的二阶段提交是什么? 二阶段提交(Two-Phase Commit, 2PC)是分布式事务中的一种协调协议,用于确保多个资源(如数据库或数据节点)在事务提交时保持一致性。MySQL 在存储引擎(如 InnoDB)和 Binlog(归档日志)之间使用二阶段提交来保证事务的一致性。 在 阅读全文
posted @ 2024-12-15 20:18 Eiffelzero 阅读(320) 评论(0) 推荐(0) 编辑
摘要:什么是数据库的逻辑外键? 逻辑外键是指通过业务逻辑在代码层面维护外键约束,而不是使用数据库中定义的物理外键。逻辑外键通常通过程序保证表之间的关联性和约束关系,例如在插入、更新或删除数据时,依靠应用程序的逻辑代码来校验关联关系。 数据库的物理外键 物理外键是通过数据库的外键约束机制(FOREIGN K 阅读全文
posted @ 2024-12-15 20:17 Eiffelzero 阅读(115) 评论(0) 推荐(0) 编辑
摘要:数据库的逻辑删除 逻辑删除是指通过标记的方式将数据标记为删除状态,而不直接从数据库中删除该数据。这通常通过在表中增加一个“删除标志”字段(例如 is_deleted 或 status)来实现。逻辑删除的数据通常在业务逻辑中被忽略,但在数据库中仍然存在。 逻辑删除的特点 保留数据:数据并未被物理删除, 阅读全文
posted @ 2024-12-15 20:15 Eiffelzero 阅读(176) 评论(0) 推荐(0) 编辑
摘要:MySQL 的查询优化器负责决定如何执行 SQL 查询,它会根据多个因素选择最优的执行计划。查询优化器的目标是选择一个成本最低、性能最优的执行计划,以便高效地处理查询。执行计划的选择是基于 MySQL 内部的统计信息和执行策略,下面是查询优化器选择执行计划的关键步骤和考虑因素: 1. 分析查询 查询 阅读全文
posted @ 2024-12-15 17:37 Eiffelzero 阅读(56) 评论(0) 推荐(0) 编辑
摘要:MySQL 中 InnoDB 存储引擎与 MyISAM 存储引擎是两种常见的存储引擎,它们在性能、事务支持、锁机制、数据完整性等方面存在一些显著的区别。以下是它们的主要区别: 1. 事务支持 InnoDB:支持事务,符合 ACID(原子性、一致性、隔离性、持久性)特性。事务管理通过 COMMIT、R 阅读全文
posted @ 2024-12-15 17:36 Eiffelzero 阅读(51) 评论(0) 推荐(0) 编辑
摘要:MySQL 数据库性能优化是提高数据库响应速度和处理能力的重要手段。性能优化可以从多个层面入手,涵盖数据库设计、查询优化、硬件资源优化、配置调整等方面。以下是 MySQL 数据库常见的性能优化方法: 1. 数据库设计优化 规范化与反规范化: 规范化:通过规范化表结构,可以消除数据冗余,避免数据不一致 阅读全文
posted @ 2024-12-15 17:36 Eiffelzero 阅读(122) 评论(0) 推荐(0) 编辑
摘要:数据库的“不停服迁移”指的是在不中断数据库服务的情况下,将数据库的数据从一个实例迁移到另一个实例,保证系统持续对外提供服务。这种迁移通常涉及数据的平滑过渡、最小化系统停机时间以及确保数据的一致性。实现不停服迁移的过程复杂,通常需要考虑以下几个方面: 实现不停服迁移的关键步骤 1. 准备迁移计划 评估 阅读全文
posted @ 2024-12-15 17:35 Eiffelzero 阅读(118) 评论(0) 推荐(0) 编辑
摘要:什么是 Write-Ahead Logging (WAL) 技术? Write-Ahead Logging (WAL) 是一种用于数据库系统的日志记录技术,它要求在对数据库进行任何修改之前,所有的修改都必须先写入到日志文件中。这样做的目的是为了保证事务的持久性和一致性,确保即使数据库发生崩溃或意外关 阅读全文
posted @ 2024-12-15 17:33 Eiffelzero 阅读(105) 评论(0) 推荐(0) 编辑
摘要:在 MySQL 中,EXISTS 和 IN 都用于在子查询中进行条件判断,但它们的使用场景和性能有一定区别。以下是 EXISTS 和 IN 的主要区别: 1. 功能和用法 EXISTS: EXISTS 用于检查子查询是否返回至少一行数据。如果子查询返回至少一行数据,EXISTS 的条件为真,否则为假 阅读全文
posted @ 2024-12-15 17:31 Eiffelzero 阅读(296) 评论(0) 推荐(0) 编辑
摘要:虽然索引在数据库中可以显著提高查询性能,但在某些情况下,创建索引并不推荐。以下是几种不推荐为数据库建立索引的情况: 1. 数据量很小的表 原因:对于小型表,数据库可以快速扫描整个表,索引的创建反而会带来额外的存储和管理开销。在这种情况下,索引对性能的提升几乎可以忽略不计。 例子:一个只有几百行的表, 阅读全文
posted @ 2024-12-15 17:30 Eiffelzero 阅读(53) 评论(0) 推荐(0) 编辑
摘要:在MySQL中,VARCHAR(100) 和 VARCHAR(10) 都是变长字符串类型,但它们的主要区别在于能够存储的最大字符长度不同: 1. 存储长度 VARCHAR(100):表示该字段可以存储最多 100 个字符(根据字符集的不同,一个字符可能占用 1 到多个字节)。如果存储的数据长度小于 阅读全文
posted @ 2024-12-15 17:29 Eiffelzero 阅读(174) 评论(0) 推荐(0) 编辑
摘要:在MySQL中直接存储图片、音频、视频等大容量内容(通常称为BLOB数据)通常不被推荐,主要原因包括以下几点: 1. 性能问题 存储效率:存储大容量文件(如图片、音频、视频等)会大幅增加数据库的存储负担。每次查询或插入时,处理这些大容量数据会消耗大量的I/O资源,可能导致数据库性能下降。 数据库负担 阅读全文
posted @ 2024-12-15 17:28 Eiffelzero 阅读(86) 评论(0) 推荐(0) 编辑
摘要:在数据库中,游标(Cursor)是一个数据库对象,用于逐行处理查询结果集。游标使得程序可以在查询结果中按顺序访问每一行数据,并对每一行进行操作。通常,游标用于需要逐行处理查询结果的场景,例如在存储过程中逐条处理数据。 游标的特点: 逐行处理:游标允许你按顺序逐行处理查询结果集,而不像普通的SQL查询 阅读全文
posted @ 2024-12-15 17:27 Eiffelzero 阅读(86) 评论(0) 推荐(0) 编辑
摘要:在数据库中,视图(View)是一种虚拟的表,它是通过查询从一个或多个基本表中派生出来的结果集。视图并不实际存储数据,而是存储SQL查询,查询的结果会在视图被调用时动态生成。视图的作用类似于一个存储的查询,可以简化复杂的查询操作,提供数据的安全性,并且可以为用户提供定制化的视图。 视图的特点: 虚拟表 阅读全文
posted @ 2024-12-15 17:25 Eiffelzero 阅读(79) 评论(0) 推荐(0) 编辑
摘要:在MySQL中存储金额数据时,最推荐使用 DECIMAL 类型(有时也叫做 NUMERIC)。DECIMAL 类型是一种精确的数字类型,适合存储具有小数位的金额数据,因为它不会像浮点数类型那样受到精度丢失的问题。 DECIMAL 类型的优点: 高精度:DECIMAL 类型能够精确存储货币值,避免浮动 阅读全文
posted @ 2024-12-15 17:22 Eiffelzero 阅读(369) 评论(0) 推荐(0) 编辑
摘要:在MySQL中,AUTO_INCREMENT列用于自动生成唯一的数字值,通常用于主键。当AUTO_INCREMENT列达到最大值时,会发生以下几种情况,具体取决于列的数据类型以及MySQL的配置。 对于 TINYINT 类型: 最大值:TINYINT的最大值为 127(有符号)或 255(无符号)。 阅读全文
posted @ 2024-12-15 17:19 Eiffelzero 阅读(96) 评论(0) 推荐(0) 编辑
摘要:在MySQL中,TEXT类型用于存储较长的文本数据。TEXT类型的最大存储长度取决于表的字符集和存储引擎。具体来说,TEXT类型的最大存储长度为: TEXT:最大存储 65,535 字节(约 64 KB)。这意味着可以存储大约 65,535 个字符,具体取决于所使用的字符集。例如,使用UTF-8字符 阅读全文
posted @ 2024-12-15 17:17 Eiffelzero 阅读(903) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示