随笔分类 -  深挖计算机基础

上一页 1 2 3 4 5 6 7 ··· 11 下一页
摘要:一、本节概述 在 MySQL 里面,grant 语句是用来给用户赋权的。不知道你有没有见过一些操作文档里面提到,grant 之后要马上跟着执行一个 flush privileges 命令,才能使赋权语句生效。我最开始使用 MySQL 的时候,就是照着一个操作文档的说明按照这个顺序操作的。 那么,gr 阅读全文
posted @ 2019-11-01 22:09 活的潇洒80 阅读(439) 评论(0) 推荐(0) 编辑
摘要:一、本节概述 我在上一篇文章最后,给你留下的问题是怎么在两张表中拷贝数据。如果可以控制对源表的扫描行数和加锁范围很小的话,我们简单地使用 insert … select 语句即可实现。 当然,为了避免对源表加读锁,更稳妥的方案是先将数据写到外部文本文件,然后再写回目标表。这时,有两种常用的方法。接下 阅读全文
posted @ 2019-11-01 19:04 活的潇洒80 阅读(555) 评论(0) 推荐(0) 编辑
摘要:一、本节概述 在上一篇文章中,我提到 MySQL 对自增主键锁做了优化,尽量在申请到自增 id 以后,就释放自增锁。 因此,insert 语句是一个很轻量的操作。不过,这个结论对于“普通的 insert 语句”才有效。也就是说,还有些 insert 语句是属于“特殊情况”的,在执行过程中需要给其他资 阅读全文
posted @ 2019-11-01 18:43 活的潇洒80 阅读(535) 评论(0) 推荐(0) 编辑
摘要:一、本节概况 MySQL实战45讲学习笔记:自增主键为什么不是连续的?(第39讲) 在第 4 篇文章中,我们提到过自增主键,由于自增主键可以让主键索引尽量地保持递增顺序插入,避免了页分裂,因此索引更紧凑。 之前我见过有的业务设计依赖于自增主键的连续性,也就是说,这个设计假设自增主键是连续的。但实际上 阅读全文
posted @ 2019-10-31 19:47 活的潇洒80 阅读(599) 评论(1) 推荐(0) 编辑
摘要:一、引子 今天是大年三十,在开始我们今天的学习之前,我要先和你道一声春节快乐! 在上一篇文章中,我们在优化 join 查询的时候使用到了临时表。当时,我们是这么用的: 你可能会有疑问,为什么要用临时表呢?直接用普通表是不是也可以呢? 今天我们就从这个问题说起:临时表有哪些特征,为什么它适合这个场景? 阅读全文
posted @ 2019-10-30 22:51 活的潇洒80 阅读(626) 评论(0) 推荐(0) 编辑
摘要:一、本节内容 我在上一篇文章末尾留给你的问题是:两个 group by 语句都用了 order by null,为什么使用内存临时表得到的语句结果里,0 这个值在最后一行;而使用磁盘临时表得到的结果里,0 这个值在第一行? 今天我们就来看看,出现这个问题的原因吧。 二、内存表的数据组织结构 1、两个 阅读全文
posted @ 2019-10-28 21:41 活的潇洒80 阅读(448) 评论(0) 推荐(0) 编辑
摘要:一、本节概况 今天是大年初二,在开始我们今天的学习之前,我要先和你道一声春节快乐! 在第 16和第 34篇文章中,我分别和你介绍了 sort buffer、内存临时表和 join buffer。这三个数据结构都是用来存放语句执行过程中的中间数据,以辅助 SQL 语句的执行的。其中,我们在排序的时候用 阅读全文
posted @ 2019-10-28 21:23 活的潇洒80 阅读(1170) 评论(2) 推荐(0) 编辑
摘要:一、本节概述 在上一篇文章中,我和你介绍了 join 语句的两种算法,分别是 Index Nested-LoopJoin(NLJ) 和 Block Nested-Loop Join(BNL)。 我们发现在使用 NLJ 算法的时候,其实效果还是不错的,比通过应用层拆分成多个语句然后再拼接查询结果更方便 阅读全文
posted @ 2019-10-28 21:05 活的潇洒80 阅读(623) 评论(0) 推荐(0) 编辑
摘要:一、本节概览 今天我要和你讨论的是一个沉重的话题:误删数据。 在前面几篇文章中,我们介绍了 MySQL 的高可用架构。当然,传统的高可用架构是不能预防误删数据的,因为主库的一个 drop table 命令,会通过 binlog 传给所有从库和级联从库,进而导致整个集群的实例都会执行这个命令。 虽然我 阅读全文
posted @ 2019-10-27 21:33 活的潇洒80 阅读(505) 评论(0) 推荐(0) 编辑
摘要:一、本节分析案例 在 MySQL 中有两个 kill 命令:一个是 kill query + 线程 id,表示终止这个线程中正在执行的语句;一个是 kill connection + 线程 id,这里 connection 可缺省,表示断开这个线程的连接,当然如果这个线程有语句正在执行,也是要先停止 阅读全文
posted @ 2019-10-27 12:19 活的潇洒80 阅读(568) 评论(0) 推荐(0) 编辑
摘要:一、引子 我经常会被问到这样一个问题:我的主机内存只有 100G,现在要对一个 200G 的大表做全表扫描,会不会把数据库主机的内存用光了? 这个问题确实值得担心,被系统 OOM(out of memory)可不是闹着玩的。但是,反过来想想,逻辑备份的时候,可不就是做整库扫描吗?如果这样就会把内存吃 阅读全文
posted @ 2019-10-27 11:58 活的潇洒80 阅读(577) 评论(0) 推荐(0) 编辑
摘要:一、本节概述 在实际生产中,关于 join 语句使用的问题,一般会集中在以下两类: 1. 我们 DBA 不让使用 join,使用 join 有什么问题呢?2. 如果有两个大小不同的表做 join,应该用哪个表做驱动表呢? 今天这篇文章,我就先跟你说说 join 语句到底是怎么执行的,然后再来回答这两 阅读全文
posted @ 2019-10-26 09:59 活的潇洒80 阅读(546) 评论(0) 推荐(0) 编辑
摘要:一、一主多从的切换正确性 在前面的第24、25和26篇文章中,我和你介绍了 MySQL 主备复制的基础结构,但这些都是一主一备的结构。 大多数的互联网应用场景都是读多写少,因此你负责的业务,在发展过程中很可能先会遇到读性能的问题。而在数据库层解决读性能问题,就要涉及到接下来两篇文章要讨论的架构:一主 阅读全文
posted @ 2019-10-24 22:42 活的潇洒80 阅读(532) 评论(0) 推荐(0) 编辑
摘要:一、引子 在上一篇文章中,我和你介绍了 binlog 的基本内容,在一个主备关系中,每个备库接收主库的 binlog 并执行。 正常情况下,只要主库执行更新生成的所有 binlog,都可以传到备库并被正确地执行,备库就能达到跟主库一致的状态,这就是最终一致性。 但是,MySQL 要提供高可用能力,只 阅读全文
posted @ 2019-10-24 21:33 活的潇洒80 阅读(555) 评论(0) 推荐(0) 编辑
摘要:一、引子 我在第25和27篇文章中,和你介绍了主备切换流程。通过这些内容的讲解,你应该已经很清楚了:在一主一备的双 M 架构里,主备切换只需要把客户端流量切到备库;而在一主多从架构里,主备切换除了要把客户端流量切到备库外,还需要把从库接到新主库上。 主备切换有两种场景,一种是主动切换,一种是被动切换 阅读全文
posted @ 2019-10-24 18:53 活的潇洒80 阅读(657) 评论(0) 推荐(0) 编辑
摘要:一、复习一下加锁规则 在第20和21篇文章中,我和你介绍了 InnoDB 的间隙锁、next-key lock,以及加锁规则。在这两篇文章的评论区,出现了很多高质量的留言。我觉得通过分析这些问题,可以帮助你加深对加锁规则的理解。 所以,我就从中挑选了几个有代表性的问题,构成了今天这篇答疑文章的主题, 阅读全文
posted @ 2019-10-24 14:47 活的潇洒80 阅读(629) 评论(0) 推荐(0) 编辑
摘要:一、引子 在前面的文章中,我不止一次地和你提到了 binlog,大家知道 binlog 可以用来归档,也可以用来做主备同步,但它的内容是什么样的呢?为什么备库执行了 binlog 就可以跟主库保持一致了呢?今天我就正式地和你介绍一下它。 毫不夸张地说,MySQL 能够成为现下最流行的开源数据库,bi 阅读全文
posted @ 2019-10-23 22:11 活的潇洒80 阅读(566) 评论(0) 推荐(1) 编辑
摘要:一、引子 在上一篇文章中,我和你介绍了几种可能导致备库延迟的原因。你会发现,这些场景里,不论是偶发性的查询压力,还是备份,对备库延迟的影响一般是分钟级的,而且在备库恢复正常以后都能够追上来。 但是,如果备库执行日志的速度持续低于主库生成日志的速度,那这个延迟就有可能成了小时级别。而且对于一个压力持续 阅读全文
posted @ 2019-10-23 22:02 活的潇洒80 阅读(639) 评论(0) 推荐(0) 编辑
摘要:一、本节概要 今天这篇文章,我会继续和你介绍在业务高峰期临时提升性能的方法。从文章标题“MySQL 是怎么保证数据不丢的?”,你就可以看出来,今天我和你介绍的方法,跟数据的可靠性有关。 在专栏前面文章和答疑篇中,我都着重介绍了 WAL 机制(你可以再回顾下第 2 篇、第 9篇、第 12 篇和第 15 阅读全文
posted @ 2019-10-20 20:52 活的潇洒80 阅读(693) 评论(0) 推荐(0) 编辑
摘要:一、引子 在上一篇文章中,我和你介绍了间隙锁和 next-key lock 的概念,但是并没有说明加锁规则。间隙锁的概念理解起来确实有点儿难,尤其在配合上行锁以后,很容易在判断是否会出现锁等待的问题上犯错。 所以今天,我们就先从这个加锁规则开始吧。 首先说明一下,这些加锁规则我没在别的地方看到过有类 阅读全文
posted @ 2019-10-18 09:57 活的潇洒80 阅读(627) 评论(0) 推荐(1) 编辑

上一页 1 2 3 4 5 6 7 ··· 11 下一页
点击右上角即可分享
微信分享提示