MySQL
文章平均质量分 87
MySQL 核心技术
Boilermaker1992
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[MySQL] 初识 MySQL 与 SQL 基础
MySQL 是一个客户端服务器结构的程序。MySQL 的服务器是主体,提供数据管理服务,硬盘存储。MySQL 是一个关系型数据库。关系二字首先特指一种由行和列组成的二维表格,这样的表格在 MySQL 中称为 table。table 中的每一行称为一条记录(record),表示一个具体的实体;每一列称为一个字段(field),描述一个实体某项具体的特征,每一列都定义了严格的数据类型。原创 2025-12-21 10:35:46 · 1015 阅读 · 0 评论 -
[MySQL] 设计范式与 E-R 图绘制
范式是数据库设计的一系列指导原则,旨在通过减少数据冗余和提高数据一致性来组织数据,从而构建出对数据关系约束严格的数据库,以保证数据的准确性。但数据冗余越少,也意味着查询效率可能降低,因为多表联查的概率大大增加,因此现在的数据库设计只满足到第三范式的程度即可。为了更高的查询效率,我们也可以适当增加冗余字段,也就是反范式设计。第一范式要求数据库表中的所有字段都是原子性的,即不可再分。这是因为,如果一列包含多个值,对该列的查询、更新和删除操作会变得非常复杂和低效,并难以对其进行约束。原创 2025-12-21 10:45:39 · 603 阅读 · 0 评论 -
[MySQL] 数据目录与日志开篇
如果配置使其记录不使用索引的查询,最好使用 log_throttle_queries_not_using_indexes 控制未使用索引的查询的记录频率,否则日志将急速膨胀。2. 写入 TABLE,虽然便于查询和分析(使用客户端与 SQL 语句来筛选和查看日志),但性能开销较大,因为每次日志记录都是一次数据库写入操作,通常仅用于临时调试。3. 即使已经配置开启了通用查询日志和慢查询日志,如果 log_output 设置为 NONE,那么也不会有任何日志被记录。4. 通用查询日志和表输出会带来巨大性能开销。原创 2025-11-15 21:28:24 · 404 阅读 · 0 评论 -
[MySQL] 服务器架构
词法分析阶段,我们的 SQL 被拆分成一个一个的 Token,这些 Token 被识别为关键字、标识符、运算符、字面量等。开始执行的时候,要先判断一下你对这个表有没有执行查询的权限。打开表的时候,执行器会根据表的存储引擎定义,去调用这个引擎提供的接口,再下面就进入存储引擎层了。语法分析阶段,关心这些 Token 的排列是否符合 SQL 语法规则,此时误写的 elect 就会报错,因为查询必须是关键字开头,而不是标识符开头。存储引擎负责数据的存储与读取,使用插件式的架构,不同的存储引擎共用一个服务器层。原创 2025-12-21 10:39:02 · 867 阅读 · 0 评论 -
[MySQL] 事务的隔离性与 MVCC
MVCC 是用于保护一般SELECT语句进行 “快照读” 的机制,根本目的就是使这种 “仅读事务” 能够在不对表进行锁控制的情况下安全地与其他事务并发执行。 对于 “读写事务” 和 “读写事务” 的并发来说,MVCC 就无能为力了,还是要进行一定的锁控制。原创 2025-12-05 20:50:07 · 1033 阅读 · 0 评论 -
[MySQL] 深度解析 Redo Log 与灾后恢复
Redo Log 也称重做日志、事务日志,是 InnoDB 独有的日志形式,它的核心作用就是保证事务的持久性。只要事务提交成功,对数据库的修改就永久保存下来了,即使发生系统崩溃,数据也不会丢失。想要理解 Redo Log 的作用,首先需要明确,数据库在修改数据时,并不是每次操作都直接写入磁盘数据文件。如果每次更新都去磁盘 IO,这个效率是非常低的,因为找到一个数据页进行修改是随机磁盘 IO。为了解决这个问题,InnoDB 使用了缓冲池(Buffer Pool)。原创 2025-11-15 21:19:23 · 1535 阅读 · 0 评论 -
[MySQL] 备份与恢复
MySQL 能恢复到半个月内任意一秒的状态,这是怎么做到的?它依赖:全量备份(状态快照) + 增量备份(Binlog 重放)。原创 2025-11-19 21:44:23 · 1314 阅读 · 1 评论 -
[MySQL] 高性能优化
观察单次查询性能: 使用 MySQL 提供的客户端程序 mysqlslap 进行压力测试,配置如下: 使用执行计划查看 SQL 语句的执行情况,这是判断如何优化 SQL 和索引的最重要工具。 EXPLAIN 返回的结果中,最重要的字段是 type,其次是 key、rows、extra。 key 表示实际使用的索引,rows 表示预计需要扫描的行数。type 和 extra 会在下面重点介绍: 这个字段描述了 MySQL 是如何找到目原创 2025-11-06 15:45:10 · 950 阅读 · 0 评论
分享