Loading

摘要: 前面我写了很多Mysql相关的知识点,到这一篇稍微可以串一下了,从SQL执行流程、MVCC到锁,很多时候可能觉得对于间隙锁和Next-Key Lock好像已经理解了,但是好像又觉得理解差那么一点意思,这篇文章从头来梳理一下概念,明确一下这些知识。 锁 首先,对于Mysql来说实现了两种行级锁: 共享 阅读全文
posted @ 2021-08-25 17:20 艾小仙 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 曾经,我以为这些东西自己平时看看书就够了,属于那种花了半天精力总算搞明白了,然后过两天就自然忘记的东西。 结果,这都啥啊,啥是卡表,什么又是三色标记法,这些鬼问题都有人面试问,卷就完了。 引用计数&可达性分析 要进行垃圾回收GC,那么我们首先就要决定到底怎么判断对象是否存活?一般来说有两种方式。 引 阅读全文
posted @ 2021-08-25 17:08 艾小仙 阅读(95) 评论(0) 推荐(0) 编辑
摘要: explain所有人都应该很熟悉,通过它我们可以知道SQL是如何执行的,虽然不是100%管用,但是至少大多数场景通过explain的输出结果我们能直观的看到执行计划的相关信息。 早一些的版本explain还只能查看select语句,现在已经能支持delete,update,insert,replac 阅读全文
posted @ 2021-08-25 17:08 艾小仙 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 在上一篇《面试官:你说说一条查询SQL的执行过程?》中描述了Mysql的架构分层,通过解析器、优化器和执行引擎完成一条SQL查询的过程,那这一篇续上继续说明一条更新SQL的执行过程。 对于一个SQL语句的更新来说,前面的流程都可以说类似的,通过解析器进行语法分析,优化器优化,执行引擎去执行,这个都没 阅读全文
posted @ 2021-08-25 17:08 艾小仙 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 为了理解这个问题,先从Mysql的架构说起,对于Mysql来说,大致可以分为3层架构。 第一层作为客户端和服务端的连接,连接器负责处理和客户端的连接,还有一些权限认证之类。比如客户端通用用户名密码连接到Mysql服务器,还有对于数据库表的执行权限。 第二层是核心层,基本上Mysql大部分的核心功能都 阅读全文
posted @ 2021-08-25 17:07 艾小仙 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 可能很多人都看到过一个线程数设置的理论: CPU 密集型的程序 - 核心数 + 1 I/O 密集型的程序 - 核心数 * 2 不会吧,不会吧,真的有人按照这个理论规划线程数? 线程数和CPU利用率的小测试 抛开一些操作系统,计算机原理不谈,说一个基本的理论(不用纠结是否严谨,只为好理解): 一个CP 阅读全文
posted @ 2021-08-25 17:07 艾小仙 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 问题 这是一个线上问题,从日志平台查询到的 SQL 执行情况,该 SQL 执行的时间为 11.146s,可以认定为是一个慢查询,美化后的 SQL 如下: 先找到这个表的定义以及索引情况如下: 可见,主要有两个联合索引:status, to_account_id 和 status, from_acco 阅读全文
posted @ 2021-08-25 17:06 艾小仙 阅读(166) 评论(1) 推荐(0) 编辑