MySQL
文章平均质量分 95
从原理到实战,搞懂 MySQL
Hyatt1024
业精于勤而荒于嬉
展开
-
【MySQL系列 04】深入浅出索引
提到数据库索引,相信大家都不陌生,在日常工作中会经常接触到。比如某一个 SQL 查询比较慢,分析完原因之后,你可能就会说“给某个字段加个索引吧”之类的解决方案。但到底什么是索引,索引又是如何工作的呢?今天我们就来聊聊这个话题。一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本 500 页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下,那我估计你可得找一会儿。同样,对于数据库的表而言,索引其实就是它的“目录”。原创 2024-02-23 18:18:28 · 889 阅读 · 0 评论 -
【MySQL系列 05】Schema 与数据类型优化
良好的数据库 schema 设计和合理的数据类型选择是 SQL 获得高性能的基石。原创 2024-03-08 17:46:45 · 781 阅读 · 0 评论 -
【MySQL系列 03】事务隔离:为什么你改了我还看不见?
这篇文章里面,我介绍了 MySQL 的事务隔离级别的现象和实现,根据实现原理分析了长事务存在的风险,以及如何用正确的方式避免长事务。在 SQL 标准中定义了四个隔离级别,每一种级别都规定了一个事务中所做的修改,哪些在事务内和事务间是可见的,哪些是不可见的。今天的文章里,我将会以 InnoDB 为例,剖析 MySQL 在事务支持方面的特定实现,并基于原理给出相应的实践建议,希望这些案例能加深你对 MySQL 事务原理的理解。,则是提交事务并自动启动下一个事务,这样也省去了再次执行 begin 语句的开销。原创 2024-02-22 18:56:02 · 838 阅读 · 0 评论 -
【MySQL系列 02】一条SQL更新语句是如何执行的?
我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器分析器优化器执行器等功能模块,最后到达存储引擎。那么,一条更新语句的执行流程又是怎样的呢?我们从一个表的一条更新语句说起。可以确定的说,查询语句的那一套流程,更新语句也是同样会走一遍。这里我们再看下那张图,回顾一下。与查询流程不一样的是,更新流程还涉及两个重要的日志模块,它们正是我们今天要讨论的主角:redo log(重做日志)和binlog(归档日志)。原创 2024-02-21 18:32:07 · 1184 阅读 · 0 评论 -
【MySQL系列 01】一条SQL查询语句是如何执行的?
当我们在 MySQL 中执行以下这条 SQL 查询语句时,我们看到的只是输入一条语句,返回一个结果,相信大多数人是不知道这条语句在 MySQL 内部的执行过程的。今天我想和你一起把 MySQL 拆解一下,看看里面都有哪些“零件”,希望借由这个拆解过程,让你对 MySQL 有更深入的理解。这样当我们碰到 MySQL 的一些异常或者问题时,就能够直戳本质,更为快速地定位并解决问题。下面我给出的是 MySQL 的基本架构示意图,从中你可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程。原创 2024-02-21 18:31:32 · 1030 阅读 · 0 评论