MySQL
文章平均质量分 96
了不起的盖茨比。
如果把一切都准备好了再前行,那我们永远迈不出第一步。
展开
-
MySQL是怎么保证主备一致的?
前面的博客我们介绍了binlog的作用,大家知道 binlog 可以用来归档,也可以用来做主备同步,但它的内容是什么样的呢?为什么备库执行了 binlog 就可以跟主库保持一致了呢?今天我就正式地和你介绍一下它。毫不夸张地说,MySQL 能够成为现下最流行的开源数据库,binlog 功不可没。在最开始,MySQL 是以容易学习和方便的高可用架构,被开发人员青睐的。而它的几乎所有的高可用架构,都直接依赖于 binlog。虽然这些高可用架构已经呈现出越来越复杂的趋势,但都是从最基本的一主一备演化过来的。原创 2022-11-07 14:28:09 · 273 阅读 · 0 评论 -
MySQL是怎么保证数据不丢的?
上篇博客我们介绍在业务的高峰期,我们如何提高MySQL的性能,今天我们继续来探讨这个问题。从这篇博客的题目中你可以知道今天的方法是和数据的可靠性有关,主要参考的资料是极客时间的专栏课《MySQL实战45讲》。原创 2022-11-07 09:50:58 · 372 阅读 · 0 评论 -
MySQL有哪些“饮鸩止渴”提高性能的方法?
上一篇博客我们介绍了MySQL的加锁的规则,以及介绍了行锁以及间隙锁,同时介绍了几种案例,对两个规则和两个优化和一个bug,进行了分别的举例。主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-11-05 15:05:20 · 125 阅读 · 0 评论 -
为什么我只改一行的语句,锁这么多?
在上一篇博客中,我和你介绍了间隙锁和 next-key lock 的概念,但是并没有说明加锁规则。间隙锁的概念理解起来确实有点儿难,尤其在配合上行锁以后,很容易在判断是否会出现锁等待的问题上犯错。原创 2022-11-05 14:04:10 · 152 阅读 · 0 评论 -
幻读?幻读有什么问题?
前面的博客我们介绍完了加锁的机制,这篇博客我们来介绍一下有关幻读的知识,主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-11-03 14:56:09 · 179 阅读 · 1 评论 -
为什么我只查一行的语句,也执行这么慢?
上一篇博客我们介绍了逻辑相同的SQL的查询的性能的差距,主要的原因是对索引的字段使用函数,这样的索引是失效的。主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-10-31 15:12:28 · 114 阅读 · 0 评论 -
为什么这些SQL语句逻辑相同,性能却差异巨大?
前面的博客我们介绍Order By 是如何工作的,同时什么因素会影响到Order By 的性能,今天我们来介绍一样不同的SQL的语句对应性能的影响,主要参考的资料是极客时间的专栏课《MySQL实战45讲》在 MySQL 中,有很多看上去逻辑相同,但性能却差异巨大的 SQL 语句。对这些语句使用不当的话,就会不经意间导致整个数据库的压力变大。我今天挑选了三个这样的案例和你分享。希望再遇到相似的问题时,你可以做到举一反三、快速解决问题。假设你现在维护了一个交易系统,其中交易记录表 包含**交易流水号(trad原创 2022-10-31 10:27:59 · 162 阅读 · 0 评论 -
MySQL的order by是怎么工作的?
上一篇博客我们对前面的所有博客进行了总结了一下,然后着重的介绍了MySQL的日志的系统,两阶段的提交的,同时异常的重启的,MySQL是如何恢复内容的。同时举了一个例子的,同时这个时候提供了一个很好的解决办法。主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-10-29 15:28:25 · 95 阅读 · 0 评论 -
MySQL小结(一)
前面的博客我们介绍了为什么count()函数会慢的情况,同时也提供了一些解决办法,前面的十几篇有关MySQL的博客,今天的我们来总结一下,同时也提供一些解决的办法。原创 2022-10-28 16:29:22 · 127 阅读 · 0 评论 -
count(*)这么慢,我该怎么办?
前面的博客我们介绍MySQL的表中的数据删除了一半,但是表的大小没有变小,讲了其中的原理,实际上MySQL中的删除数据是逻辑上的删除,并不是物理上的删除,只是标记这条记录是删除的状态,同时这个位置可以被复用,这样就会导致删除数据后,表所占的空间没有减少,我们可以通过重建表的方式,让这些空间得到释放。今天我们要讲的是 count(*)这么慢,我该怎么办?主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-10-28 10:56:11 · 945 阅读 · 0 评论 -
为什么我表数据的删除了一半,表文件大小不变?
前面的博客我们介绍完了,为什么有时候MySQL在使用的时候会突然的卡一下,同时还有就是MySQL的redo log 的机制,还有刷脏页的一些机制,今天我们来介绍一下为什么我表的数据的删除了一半,表文件大小不变?主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-10-27 16:16:59 · 202 阅读 · 0 评论 -
为什么我的MySQL会“抖”一下?
前面的博客,我们介绍了如何给字符串字段加索引,主要的方法就是用前缀索引的方式,如果这个字符串的前缀的都相同,后缀的不同,我们可以采用将这个字符串进行逆转,再建立索引,就可以提高索引的区分度。还有一种方法就是将这个字符串进行hash,然后将这个hash过后的字符串存到数据库,对这个hash后的字段进行建立索引,这样同样可以索引的区分度。今天我们来介绍一下为什么MySQL有的时候会突然卡一下,俗称突然抖一下。主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-10-27 13:15:31 · 167 阅读 · 0 评论 -
MySQL怎么给字符串字段加索引?
上篇博客我们介绍完了索引,以及MySQL选择索引机制,同时以及为什么MySQL选择索引会错。今天我们来讲下怎么给字符串字段加索引?主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-10-26 14:42:08 · 820 阅读 · 0 评论 -
MySQL为什么有时候会选错索引?
前面我们介绍过索引,你已经知道了在 MySQL 中一张表其实是可以支持多个索引的。但是,你写 SQL 语句的时候,并没有主动指定使用哪个索引。也就是说,使用哪个索引是由 MySQL 来确定的。今天我们就来说一下MySQL是如何选择索引的,为什么会选错?主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-10-26 11:07:46 · 200 阅读 · 0 评论 -
MySQL的普通索引和唯一索引怎么选择?
前面的博客介绍完了MySQL的事务,事务的隔离级别,今天我们来聊一下MySQL的普通索引和唯一索引怎么选择?主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-10-25 15:12:27 · 216 阅读 · 0 评论 -
MySQL的事务是隔离还是不隔离
在上一篇博客中我们介绍完了MySQL的全局锁、表锁、行锁,今天我们的博客我们继续介绍事务的一些知识,主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-10-25 11:22:53 · 85 阅读 · 0 评论 -
MySQL的行锁
前面的博客我们介绍完了MySQL的全局锁和表锁,由于篇幅的原因,所以今天的我们来介绍下MySQL的行锁,主要参考的资料是极客时间的专栏课《MySQL实战45讲》MySQL 的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如 MyISAM 引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有一个更新在执行,这就会影响到业务并发度。InnoDB 是支持行锁的,这也是 MyISAM 被 InnoDB 替代的重要原因之一。原创 2022-10-24 15:34:00 · 1680 阅读 · 0 评论 -
MySQL的全局锁和表锁
上一篇博客我们介绍完了MySQL的索引的一些机制,这篇博客我们来介绍一下MySQL的全局锁和表锁,主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-10-24 11:06:58 · 103 阅读 · 0 评论 -
MySQL深入浅出索引(下)
上一篇博客我们只是简单的了解下MySQL的索引的一些知识,由于篇幅的原因,所以我们这儿分成了两篇博客,继续介绍我们的索引的知识,主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-10-21 15:38:45 · 130 阅读 · 0 评论 -
MySQL深入浅出索引(上)
前面的博客我们介绍完了MySQL的基础架构、日志系统、事务的一些基础知识,今天我们来简单的介绍一下索引,由于篇幅的原因,会分成上下两篇博客。主要参考的资料是极客时间的专栏课《MySQL实战45讲》提到数据库索引,我想你并不陌生,在日常工作中会经常接触到。比如某一个 SQL 查询比较慢,分析完原因之后,你可能就会说“给某个字段加个索引吧”之类的解决方案。但到底什么是索引,索引又是如何工作的呢?今天就让我们一起来聊聊这个话题吧。一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。原创 2022-10-21 13:54:28 · 111 阅读 · 0 评论 -
事务隔离:为什么你改了我还看不见?
前面的博客,我们了解了MySQL的基础的架构,分析一个查询的语句是如何执行的,已经一个更新的语句是怎么执行的,同时了解了MySQL的日志系统,同时的两阶段提交的原理。今天我们来讲下MySQL的事务,主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-10-20 16:00:49 · 97 阅读 · 0 评论 -
一条SQL更新语句是如何执行的?
前面的博客我们知道了MySQL的基础的架构,同时知道了MySQL比较核心的Server层,主要是包括连接器、查询缓存、分析器、优化器、执行器。同时我们知道一条的查询语句是如何执行的。今天我们要知道一条SQL更新语句是如何执行的?主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-10-19 15:39:14 · 198 阅读 · 0 评论 -
MySQL的基础架构-一条查询语句是如何执行的?
今天我们开启一个新的篇章,就是开始学习我们的MySQL,每次的面试我都是MySQL这块异常的薄弱,每次一问MySQL,除了会写点增删查改,一些优化的手段也是不知道,导致这块的面试的效果很不好,接下来,我们就开始系统的学习一下MySQL,主要参考的资料是极客时间的专栏课《MySQL实战45讲》原创 2022-10-19 10:31:09 · 131 阅读 · 0 评论