该文被密码保护。 阅读全文
posted @ 2023-04-20 19:53
程序杰杰
阅读(1)
评论(0)
推荐(0)
摘要:
时光流逝,这是专栏的最后一篇文章。回顾整个过程,如果用一个词来描述,就是“没料到”: 我没料到文章这么难写,似乎每一篇文章都要用尽所学; 我没料到评论这么精彩,以致于我花在评论区的时间并不比正文少; 我没料到收获这么大,每一次被评论区的提问问到盲点,都会带着久违的兴奋去分析代码。 如果让我自己评价这 阅读全文
posted @ 2023-04-20 15:14
程序杰杰
阅读(42)
评论(0)
推荐(0)
摘要:
在专栏上线后的11月21日,我来到极客时间做了一场直播,主题就是“我的MySQL心路历程”。今天,我特意将这个直播的回顾文章,放在了专栏下面,希望你可以从我这些年和MySQL打交道的经历中,找到对你有所帮助的点。 这里,我先和你说一下,在这个直播中,我主要分享的内容: 我和MySQL打交道的经历; 阅读全文
posted @ 2023-04-20 15:13
程序杰杰
阅读(135)
评论(0)
推荐(0)
摘要:
MySQL里有很多自增的id,每个自增id都是定义了初始值,然后不停地往上加步长。虽然自然数是没有上限的,但是在计算机里,只要定义了表示这个数的字节长度,那它就有上限。比如,无符号整型(unsigned int)是4个字节,上限就是232-1。 既然自增id有上限,就有可能被用完。但是,自增id用完 阅读全文
posted @ 2023-04-20 15:12
程序杰杰
阅读(70)
评论(0)
推荐(0)
摘要:
这是我们专栏的最后一篇答疑文章,今天我们来说说一些好问题。 在我看来,能够帮我们扩展一个逻辑的边界的问题,就是好问题。因为通过解决这样的问题,能够加深我们对这个逻辑的理解,或者帮我们关联到另外一个知识点,进而可以帮助我们建立起自己的知识网络。 在工作中会问好问题,是一个很重要的能力。 经过这段时间的 阅读全文
posted @ 2023-04-20 15:12
程序杰杰
阅读(34)
评论(0)
推荐(0)
摘要:
我经常被问到这样一个问题:分区表有什么问题,为什么公司规范不让使用分区表呢?今天,我们就来聊聊分区表的使用行为,然后再一起回答这个问题。 分区表是什么? 为了说明分区表的组织形式,我先创建一个表t: CREATE TABLE `t` ( `ftime` datetime NOT NULL, `c` 阅读全文
posted @ 2023-04-20 15:11
程序杰杰
阅读(61)
评论(0)
推荐(0)
摘要:
在MySQL里面,grant语句是用来给用户赋权的。不知道你有没有见过一些操作文档里面提到,grant之后要马上跟着执行一个flush privileges命令,才能使赋权语句生效。我最开始使用MySQL的时候,就是照着一个操作文档的说明按照这个顺序操作的。 那么,grant之后真的需要执行flus 阅读全文
posted @ 2023-04-20 15:11
程序杰杰
阅读(63)
评论(0)
推荐(0)
摘要:
我在上一篇文章最后,给你留下的问题是怎么在两张表中拷贝数据。如果可以控制对源表的扫描行数和加锁范围很小的话,我们简单地使用insert … select 语句即可实现。 当然,为了避免对源表加读锁,更稳妥的方案是先将数据写到外部文本文件,然后再写回目标表。这时,有两种常用的方法。接下来的内容,我会和 阅读全文
posted @ 2023-04-20 15:10
程序杰杰
阅读(85)
评论(0)
推荐(0)
摘要:
在上一篇文章中,我提到MySQL对自增主键锁做了优化,尽量在申请到自增id以后,就释放自增锁。 因此,insert语句是一个很轻量的操作。不过,这个结论对于“普通的insert语句”才有效。也就是说,还有些insert语句是属于“特殊情况”的,在执行过程中需要给其他资源加锁,或者无法在申请到自增id 阅读全文
posted @ 2023-04-20 15:10
程序杰杰
阅读(80)
评论(0)
推荐(0)
摘要:
在第4篇文章中,我们提到过自增主键,由于自增主键可以让主键索引尽量地保持递增顺序插入,避免了页分裂,因此索引更紧凑。 之前我见过有的业务设计依赖于自增主键的连续性,也就是说,这个设计假设自增主键是连续的。但实际上,这样的假设是错的,因为自增主键不能保证连续递增。 今天这篇文章,我们就来说说这个问题, 阅读全文
posted @ 2023-04-20 15:09
程序杰杰
阅读(67)
评论(0)
推荐(0)
摘要:
我在上一篇文章末尾留给你的问题是:两个group by 语句都用了order by null,为什么使用内存临时表得到的语句结果里,0这个值在最后一行;而使用磁盘临时表得到的结果里,0这个值在第一行? 今天我们就来看看,出现这个问题的原因吧。 内存表的数据组织结构 为了便于分析,我来把这个问题简化一 阅读全文
posted @ 2023-04-20 15:09
程序杰杰
阅读(47)
评论(0)
推荐(0)
摘要:
今天是大年初二,在开始我们今天的学习之前,我要先和你道一声春节快乐! 在第16和第34篇文章中,我分别和你介绍了sort buffer、内存临时表和join buffer。这三个数据结构都是用来存放语句执行过程中的中间数据,以辅助SQL语句的执行的。其中,我们在排序的时候用到了sort buffer 阅读全文
posted @ 2023-04-20 15:09
程序杰杰
阅读(50)
评论(0)
推荐(0)
摘要:
今天是大年三十,在开始我们今天的学习之前,我要先和你道一声春节快乐! 在上一篇文章中,我们在优化join查询的时候使用到了临时表。当时,我们是这么用的: create temporary table temp_t like t1; alter table temp_t add index(b); i 阅读全文
posted @ 2023-04-20 15:08
程序杰杰
阅读(57)
评论(0)
推荐(0)
摘要:
在上一篇文章中,我和你介绍了join语句的两种算法,分别是Index Nested-Loop Join(NLJ)和Block Nested-Loop Join(BNL)。 我们发现在使用NLJ算法的时候,其实效果还是不错的,比通过应用层拆分成多个语句然后再拼接查询结果更方便,而且性能也不会差。 但是 阅读全文
posted @ 2023-04-20 15:07
程序杰杰
阅读(76)
评论(0)
推荐(0)
摘要:
在实际生产中,关于join语句使用的问题,一般会集中在以下两类: 我们DBA不让使用join,使用join有什么问题呢? 如果有两个大小不同的表做join,应该用哪个表做驱动表呢? 今天这篇文章,我就先跟你说说join语句到底是怎么执行的,然后再来回答这两个问题。 为了便于量化分析,我还是创建两个表 阅读全文
posted @ 2023-04-20 15:06
程序杰杰
阅读(61)
评论(0)
推荐(0)
摘要:
我经常会被问到这样一个问题:我的主机内存只有100G,现在要对一个200G的大表做全表扫描,会不会把数据库主机的内存用光了? 这个问题确实值得担心,被系统OOM(out of memory)可不是闹着玩的。但是,反过来想想,逻辑备份的时候,可不就是做整库扫描吗?如果这样就会把内存吃光,逻辑备份不是早 阅读全文
posted @ 2023-04-20 15:05
程序杰杰
阅读(48)
评论(0)
推荐(0)
摘要:
在MySQL中有两个kill命令:一个是kill query +线程id,表示终止这个线程中正在执行的语句;一个是kill connection +线程id,这里connection可缺省,表示断开这个线程的连接,当然如果这个线程有语句正在执行,也是要先停止正在执行的语句的。 不知道你在使用MySQ 阅读全文
posted @ 2023-04-20 15:05
程序杰杰
阅读(82)
评论(0)
推荐(0)
摘要:
今天我要和你讨论的是一个沉重的话题:误删数据。 在前面几篇文章中,我们介绍了MySQL的高可用架构。当然,传统的高可用架构是不能预防误删数据的,因为主库的一个drop table命令,会通过binlog传给所有从库和级联从库,进而导致整个集群的实例都会执行这个命令。 虽然我们之前遇到的大多数的数据被 阅读全文
posted @ 2023-04-20 15:04
程序杰杰
阅读(64)
评论(0)
推荐(0)
摘要:
在第20和21篇文章中,我和你介绍了InnoDB的间隙锁、next-key lock,以及加锁规则。在这两篇文章的评论区,出现了很多高质量的留言。我觉得通过分析这些问题,可以帮助你加深对加锁规则的理解。 所以,我就从中挑选了几个有代表性的问题,构成了今天这篇答疑文章的主题,即:用动态的观点看加锁。 阅读全文
posted @ 2023-04-20 15:04
程序杰杰
阅读(38)
评论(0)
推荐(0)
摘要:
我在第25和27篇文章中,和你介绍了主备切换流程。通过这些内容的讲解,你应该已经很清楚了:在一主一备的双M架构里,主备切换只需要把客户端流量切到备库;而在一主多从架构里,主备切换除了要把客户端流量切到备库外,还需要把从库接到新主库上。 主备切换有两种场景,一种是主动切换,一种是被动切换。而其中被动切 阅读全文
posted @ 2023-04-20 15:03
程序杰杰
阅读(48)
评论(0)
推荐(0)
摘要:
在上一篇文章中,我和你介绍了一主多从的结构以及切换流程。今天我们就继续聊聊一主多从架构的应用场景:读写分离,以及怎么处理主备延迟导致的读写分离问题。 我们在上一篇文章中提到的一主多从的结构,其实就是读写分离的基本结构了。这里,我再把这张图贴过来,方便你理解。 图1 读写分离基本结构 读写分离的主要目 阅读全文
posted @ 2023-04-20 15:03
程序杰杰
阅读(59)
评论(0)
推荐(0)
摘要:
在前面的第24、25和26篇文章中,我和你介绍了MySQL主备复制的基础结构,但这些都是一主一备的结构。 大多数的互联网应用场景都是读多写少,因此你负责的业务,在发展过程中很可能先会遇到读性能的问题。而在数据库层解决读性能问题,就要涉及到接下来两篇文章要讨论的架构:一主多从。 今天这篇文章,我们就先 阅读全文
posted @ 2023-04-20 15:02
程序杰杰
阅读(65)
评论(0)
推荐(0)
摘要:
在上一篇文章中,我和你介绍了几种可能导致备库延迟的原因。你会发现,这些场景里,不论是偶发性的查询压力,还是备份,对备库延迟的影响一般是分钟级的,而且在备库恢复正常以后都能够追上来。 但是,如果备库执行日志的速度持续低于主库生成日志的速度,那这个延迟就有可能成了小时级别。而且对于一个压力持续比较高的主 阅读全文
posted @ 2023-04-20 15:02
程序杰杰
阅读(52)
评论(0)
推荐(0)
摘要:
在上一篇文章中,我和你介绍了binlog的基本内容,在一个主备关系中,每个备库接收主库的binlog并执行。 正常情况下,只要主库执行更新生成的所有binlog,都可以传到备库并被正确地执行,备库就能达到跟主库一致的状态,这就是最终一致性。 但是,MySQL要提供高可用能力,只有最终一致性是不够的。 阅读全文
posted @ 2023-04-20 15:01
程序杰杰
阅读(50)
评论(0)
推荐(0)
摘要:
在前面的文章中,我不止一次地和你提到了binlog,大家知道binlog可以用来归档,也可以用来做主备同步,但它的内容是什么样的呢?为什么备库执行了binlog就可以跟主库保持一致了呢?今天我就正式地和你介绍一下它。 毫不夸张地说,MySQL能够成为现下最流行的开源数据库,binlog功不可没。 在 阅读全文
posted @ 2023-04-20 15:01
程序杰杰
阅读(73)
评论(0)
推荐(0)
摘要:
今天这篇文章,我会继续和你介绍在业务高峰期临时提升性能的方法。从文章标题“MySQL是怎么保证数据不丢的?”,你就可以看出来,今天我和你介绍的方法,跟数据的可靠性有关。 在专栏前面文章和答疑篇中,我都着重介绍了WAL机制(你可以再回顾下第2篇、第9篇、第12篇和第15篇文章中的相关内容),得到的结论 阅读全文
posted @ 2023-04-20 14:59
程序杰杰
阅读(51)
评论(0)
推荐(0)
摘要:
不知道你在实际运维过程中有没有碰到这样的情景:业务高峰期,生产环境的MySQL压力太大,没法正常响应,需要短期内、临时性地提升一些性能。 我以前做业务护航的时候,就偶尔会碰上这种场景。用户的开发负责人说,不管你用什么方案,让业务先跑起来再说。 但,如果是无损方案的话,肯定不需要等到这个时候才上场。今 阅读全文
posted @ 2023-04-20 14:58
程序杰杰
阅读(56)
评论(0)
推荐(0)
摘要:
在上一篇文章中,我和你介绍了间隙锁和next-key lock的概念,但是并没有说明加锁规则。间隙锁的概念理解起来确实有点儿难,尤其在配合上行锁以后,很容易在判断是否会出现锁等待的问题上犯错。 所以今天,我们就先从这个加锁规则开始吧。 首先说明一下,这些加锁规则我没在别的地方看到过有类似的总结,以前 阅读全文
posted @ 2023-04-20 14:57
程序杰杰
阅读(54)
评论(0)
推荐(0)
摘要:
在上一篇文章最后,我给你留了一个关于加锁规则的问题。今天,我们就从这个问题说起吧。 为了便于说明问题,这一篇文章,我们就先使用一个小一点儿的表。建表和初始化语句如下(为了便于本期的例子说明,我把上篇文章中用到的表结构做了点儿修改): CREATE TABLE `t` ( `id` int(11) N 阅读全文
posted @ 2023-04-20 14:57
程序杰杰
阅读(127)
评论(0)
推荐(0)
摘要:
一般情况下,如果我跟你说查询性能优化,你首先会想到一些复杂的语句,想到查询需要返回大量的数据。但有些情况下,“查一行”,也会执行得特别慢。今天,我就跟你聊聊这个有趣的话题,看看什么情况下,会出现这个现象。 需要说明的是,如果MySQL数据库本身就有很大的压力,导致数据库服务器CPU占用率很高或iou 阅读全文
posted @ 2023-04-20 14:56
程序杰杰
阅读(59)
评论(0)
推荐(0)
摘要:
在MySQL中,有很多看上去逻辑相同,但性能却差异巨大的SQL语句。对这些语句使用不当的话,就会不经意间导致整个数据库的压力变大。 我今天挑选了三个这样的案例和你分享。希望再遇到相似的问题时,你可以做到举一反三、快速解决问题。 案例一:条件字段函数操作 假设你现在维护了一个交易系统,其中交易记录表t 阅读全文
posted @ 2023-04-20 14:56
程序杰杰
阅读(49)
评论(0)
推荐(0)
摘要:
我在上一篇文章,为你讲解完order by语句的几种执行模式后,就想到了之前一个做英语学习App的朋友碰到过的一个性能问题。今天这篇文章,我就从这个性能问题说起,和你说说MySQL中的另外一种排序需求,希望能够加深你对MySQL排序逻辑的理解。 这个英语学习App首页有一个随机显示单词的功能,也就是 阅读全文
posted @ 2023-04-20 14:55
程序杰杰
阅读(45)
评论(0)
推荐(0)
摘要:
在你开发应用的时候,一定会经常碰到需要根据指定的字段排序来显示结果的需求。还是以我们前面举例用过的市民表为例,假设你要查询城市是“杭州”的所有人名字,并且按照姓名排序返回前1000个人的姓名、年龄。 假设这个表的部分定义是这样的: CREATE TABLE `t` ( `id` int(11) NO 阅读全文
posted @ 2023-04-20 14:55
程序杰杰
阅读(37)
评论(0)
推荐(0)
摘要:
在今天这篇答疑文章更新前,MySQL实战这个专栏已经更新了14篇。在这些文章中,大家在评论区留下了很多高质量的留言。现在,每篇文章的评论区都有热心的同学帮忙总结文章知识点,也有不少同学提出了很多高质量的问题,更有一些同学帮忙解答其他同学提出的问题。 在浏览这些留言并回复的过程中,我倍受鼓舞,也尽我所 阅读全文
posted @ 2023-04-20 14:54
程序杰杰
阅读(37)
评论(0)
推荐(0)
摘要:
在开发系统的时候,你可能经常需要计算一个表的行数,比如一个交易系统的所有变更记录总数。这时候你可能会想,一条select count(*) from t 语句不就解决了吗? 但是,你会发现随着系统中记录数越来越多,这条语句执行得也会越来越慢。然后你可能就想了,MySQL怎么这么笨啊,记个总数,每次要 阅读全文
posted @ 2023-04-20 14:54
程序杰杰
阅读(48)
评论(0)
推荐(0)
摘要:
经常会有同学来问我,我的数据库占用空间太大,我把一个最大的表删掉了一半的数据,怎么表文件的大小还是没变? 那么今天,我就和你聊聊数据库表的空间回收,看看如何解决这个问题。 这里,我们还是针对MySQL中应用最广泛的InnoDB引擎展开讨论。一个InnoDB表包含两部分,即:表结构定义和数据。在MyS 阅读全文
posted @ 2023-04-20 14:53
程序杰杰
阅读(95)
评论(0)
推荐(0)
摘要:
平时的工作中,不知道你有没有遇到过这样的场景,一条SQL语句,正常执行的时候特别快,但是有时也不知道怎么回事,它就会变得特别慢,并且这样的场景很难复现,它不只随机,而且持续时间还很短。 看上去,这就像是数据库“抖”了一下。今天,我们就一起来看一看这是什么原因。 你的SQL语句为什么变“慢”了 在前面 阅读全文
posted @ 2023-04-20 14:53
程序杰杰
阅读(53)
评论(0)
推荐(0)
摘要:
现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是我们今天要讨论的问题。 假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的: mysql> create table SUser( ID bigint unsigned primary key, email varc 阅读全文
posted @ 2023-04-20 14:52
程序杰杰
阅读(59)
评论(0)
推荐(0)
摘要:
前面我们介绍过索引,你已经知道了在MySQL中一张表其实是可以支持多个索引的。但是,你写SQL语句的时候,并没有主动指定使用哪个索引。也就是说,使用哪个索引是由MySQL来确定的。 不知道你有没有碰到过这种情况,一条本来可以执行得很快的语句,却由于MySQL选错了索引,而导致执行速度变得很慢? 我们 阅读全文
posted @ 2023-04-20 14:52
程序杰杰
阅读(45)
评论(0)
推荐(0)
摘要:
今天的正文开始前,我要特意感谢一下评论区几位留下高质量留言的同学。 用户名是 @某、人 的同学,对文章的知识点做了梳理,然后提了关于事务可见性的问题,就是先启动但是后提交的事务,对数据可见性的影响。@夏日雨同学也提到了这个问题,我在置顶评论中回复了,今天的文章末尾也会再展开说明。@Justin和@倪 阅读全文
posted @ 2023-04-20 14:51
程序杰杰
阅读(65)
评论(0)
推荐(0)
摘要:
你好,我是林晓斌。你现在看到的这篇文章是我重写过的。在第一版文章发布之后,我发现在介绍事务可见性规则时,由于引入了太多概念,导致理解起来很困难。随后,我索性就重写了这篇文章。现在的用户留言中,还能看到第一版文章中引入的up_limit_id的概念,为了避免大家产生误解,再此特地和大家事先说明一下。 阅读全文
posted @ 2023-04-20 14:51
程序杰杰
阅读(126)
评论(0)
推荐(0)
摘要:
在上一篇文章中,我跟你介绍了MySQL的全局锁和表级锁,今天我们就来讲讲MySQL的行锁。 MySQL的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如MyISAM引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有一个更新在执行, 阅读全文
posted @ 2023-04-20 14:50
程序杰杰
阅读(66)
评论(0)
推荐(0)
摘要:
今天我要跟你聊聊MySQL的锁。数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。 根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类。今天这篇文章,我会和你分享全局锁和表 阅读全文
posted @ 2023-04-20 14:50
程序杰杰
阅读(72)
评论(0)
推荐(0)
摘要:
在上一篇文章中,我和你介绍了InnoDB索引的数据结构模型,今天我们再继续聊聊跟MySQL索引有关的概念。 在开始这篇文章之前,我们先来看一下这个问题: 在下面这个表T中,如果我执行 select * from T where k between 3 and 5,需要执行几次树的搜索操作,会扫描多少 阅读全文
posted @ 2023-04-20 14:49
程序杰杰
阅读(42)
评论(0)
推荐(0)
摘要:
提到数据库索引,我想你并不陌生,在日常工作中会经常接触到。比如某一个SQL查询比较慢,分析完原因之后,你可能就会说“给某个字段加个索引吧”之类的解决方案。但到底什么是索引,索引又是如何工作的呢?今天就让我们一起来聊聊这个话题吧。 数据库索引的内容比较多,我分成了上下两篇文章。索引是数据库系统里面最重 阅读全文
posted @ 2023-04-20 14:49
程序杰杰
阅读(52)
评论(0)
推荐(0)
摘要:
提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转100块钱,而此时你的银行卡只有100块钱。 转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体的,不然等程序查完之后,还没做减法之前,你这100块钱 阅读全文
posted @ 2023-04-20 14:47
程序杰杰
阅读(53)
评论(1)
推荐(0)
摘要:
前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。 那么,一条更新语句的执行流程又是怎样的呢? 之前你可能经常听DBA同事说,MySQL可以恢复到半个月内任意一秒的状态 阅读全文
posted @ 2023-04-20 14:46
程序杰杰
阅读(70)
评论(0)
推荐(0)
摘要:
你好,我是林晓斌。 这是专栏的第一篇文章,我想来跟你聊聊MySQL的基础架构。我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于MySQL的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个ID字段 阅读全文
posted @ 2023-04-20 14:45
程序杰杰
阅读(61)
评论(0)
推荐(0)
摘要:
你好,我是林晓斌,网名“丁奇”,欢迎加入我的专栏,和我一起开始MySQL学习之旅。我曾先后在百度和阿里任职,从事MySQL数据库方面的工作,一步步地从一个数据库小白成为MySQL内核开发人员。回想起来,从我第一次带着疑问翻MySQL的源码查到答案至今,已经有十个年头了。在这个过程中,走了不少弯路,但 阅读全文
posted @ 2023-04-20 14:45
程序杰杰
阅读(50)
评论(0)
推荐(0)
摘要:
1 开篇词 | 这一次,让我们一起来搞懂MySQL 2 01 | 基础架构:一条SQL查询语句是如何执行的? 3 02 | 日志系统:一条SQL更新语句是如何执行的? 4 03 | 事务隔离:为什么你改了我还看不见? 5 04 | 深入浅出索引(上) 6 05 | 深入浅出索引(下) 7 06 | 阅读全文
posted @ 2023-04-20 14:44
程序杰杰
阅读(96)
评论(0)
推荐(0)
摘要:
1 开篇词 | 削弱运气的价值 2 01 | 职业生涯发展规划:每五年登上一个新台阶 3 02 | 到底该怎么理解工作与薪资的关系? 4 03 | 看透本质:研发出了生产事故,到底要不要罚钱? 5 加餐(一)| 大学毕业,我要不要留在一线城市互联网公司? 6 加餐(二) | 工作遇到不懂的问题:何时 阅读全文
posted @ 2023-04-20 14:39
程序杰杰
阅读(328)
评论(0)
推荐(0)
摘要:
你好,我是王一鹏,《乔新亮的 CTO 成长复盘》的专栏编辑,也是一名被老乔洗了脑的编辑。 为啥这么说呢?我先给你举几个例子吧。 两个月前,我出差至上海,参与落地一场线下会议。飞机还未起飞,我就同几个多年不见的大学同学约好了晚饭,誓要尝尝阿拉大上海的本帮菜。 起初,一切都很顺利。飞机如期在夜幕中滑翔落 阅读全文
posted @ 2023-04-20 14:28
程序杰杰
阅读(161)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。 这是专栏的最后一讲,感谢你一路的支持和陪伴。 从 10 月 26 日专栏上线至今,我们共同度过了近两个月的时光,在认知、管理、专业三个方面都进行了复盘和探讨。虽然正文内容只有短短的 26 讲,但每一讲的篇幅都不短,因此专栏的总字数依然在十万字左右。现在大家都比较关注对“碎片时间” 阅读全文
posted @ 2023-04-20 14:27
程序杰杰
阅读(120)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。 如果不考虑本周五将要更新的“结束语”,那么实际上,我们已经来到了整个专栏的最后一讲。在这一讲里,我打算和你聊聊有关“上云设计”的话题。 为什么要在这样的时刻聊起云计算呢? 这其实和当代 IT 产业的发展趋势有关,可以说,云计算产业的成熟,直接影响了很多问题的思考方式。 前段时间, 阅读全文
posted @ 2023-04-20 14:26
程序杰杰
阅读(61)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。 今天,我想和你聊聊有关异常设计的话题。 如果你认真听了前面的内容,那么对你来说,异常设计应该不是一个新鲜概念了。在高可用设计、监控体系建设部分,我们都聊到了对异常的管理。 那么,为什么今天我们又要单独聊异常设计呢?因为异常管理虽然属于监控体系的一部分,但并不完全依赖于监控体系或高 阅读全文
posted @ 2023-04-20 14:26
程序杰杰
阅读(90)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。 这一讲,我想和你聊聊如何做好监控设计。 你可能会想,为什么要聊监控呢?做监控不是很简单吗? 所有做技术的同学,基本都会根据公司的日志规范,在代码中打印 Log ,以记录告警和报错。许多企业,也会将日志收集分析,以此形成对系统状态的监控。如果条件允许,团队还可以使用各类免费或付费的 阅读全文
posted @ 2023-04-20 14:25
程序杰杰
阅读(68)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。 在实际的工作中,可能你经常会承担许多难以按约、按时交付,甚至是无法交付的工作。对于个人成长来说,这无疑是个大问题。 虽然我常常向团队强调一个公式:「认知到位 + 彪悍执行 = 成功交付」,但这是建立在对项目的客观评估基础上的,否则,对于某些工作任务或产品需求来说,无论你多么努力, 阅读全文
posted @ 2023-04-20 14:25
程序杰杰
阅读(107)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。 这一讲,我想和你聊聊,如何做好扩展性设计。 说到扩展性设计,可能你的第一反应是业务拆分、集群扩容等等。说得没错,这些都能增强系统的扩展性,但仅仅局限于架构和技术层面。我的下属经常兴奋地向我描述,说他实现了一个非常厉害的、高性能、高可扩展性的系统。我的回答经常是,你说的都对,然后呢 阅读全文
posted @ 2023-04-20 14:24
程序杰杰
阅读(125)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。这一讲,我们来聊聊如何实现架构的高性能设计。 前面我们讲过,产品思维有两个核心关键词:“契约精神”和“洞察人性”。其实高性能设计,也和契约精神是密切相关的。我将其总结为:高性能设计,一切围绕着契约精神。 你可能会想,高性能设计不就是可以支撑大流量、高并发的架构设计吗?和契约精神又有 阅读全文
posted @ 2023-04-20 14:24
程序杰杰
阅读(77)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。这一讲,我想和你聊聊,关于高可用设计的那些事儿。 一提起高可用设计,很多同学立刻就会想到“冗余设计”、“故障转移”等关键词。确实,在大部分与高可用相关的分享里,这两个词往往会被重点强调。 所谓“冗余设计”,是指要通过集群来替代单点服务,做好冗余备份。单点架构是高可用的大敌,“把鸡蛋 阅读全文
posted @ 2023-04-20 14:23
程序杰杰
阅读(123)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。今天,我想和你聊聊,如何培养产品思维,以及我个人与之相关的复盘和思考。 多年以前,我其实也没什么所谓的产品思维,主要的工作还是做好架构设计、解决方案,做什么产品呢? 后来,我的职位越来越高,也逐渐开始为公司的业务发展负责,我逐步意识到:产品太重要了,对于高级管理者很重要,对于 IT 阅读全文
posted @ 2023-04-20 14:23
程序杰杰
阅读(121)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。今天,我想和你聊聊,关于架构设计的一些认知和体会。 作为技术人,最常接触的概念,恐怕就是架构设计了。即便是初出茅庐的新手程序员,可能也听说过 6 大设计原则与 23 种设计模式。因为,要成为管理者或技术专家,架构设计绝对是你绕不开的槛。 因此,关于架构设计的书和课程非常多,多到简直 阅读全文
posted @ 2023-04-20 14:23
程序杰杰
阅读(77)
评论(0)
推荐(0)
摘要:
你好,欢迎来到我的专栏:「乔新亮的 CTO 成长复盘」第三章 —— 也是最后一章:「对专业成长的复盘」,我是乔新亮,很高兴能见到你。 说起来真的有点感慨,自从 10 月 26 日专栏上线起,眨眼间,我们共同度过了一月有余的时光。 在这段时间里,有超过 3500 人加入课程,与你我一起成长。专栏共发布 阅读全文
posted @ 2023-04-20 14:22
程序杰杰
阅读(198)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。 私下聊天时,曾经有很多朋友问我:“老乔,我感觉你现在太有影响力了,很多朋友都知道你,我就经常听你的演讲和分享,非常棒。我自己虽然也在团队管理上有点心得,但不知道怎么讲出来,也不太敢讲。能不能给我分享分享啊,怎么提升自己的影响力?” 每次听到这类问题,我都有点脸红。 一方面我并不觉 阅读全文
posted @ 2023-04-20 14:22
程序杰杰
阅读(138)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮,很高兴又和你见面了。 上节课我们聊到,面对“需求做不完,应该怎么办”这个问题,首先要认识到需求是永远做不完的,但要尽量节约各类需求对管理者精力的影响。 在此基础上,我们对管理者的工作重点进行了拆分,认为初/中级管理者主要解决效率问题,高级管理者主要解决价值问题,并聊了聊初/中级管理 阅读全文
posted @ 2023-04-20 14:20
程序杰杰
阅读(185)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。 在前面的内容里,我们讲到,技术管理者既要具备全局思维,也要做好战略聚焦。站在 CTO 能力建设的维度上,这当然是非常关键的。 具体到实际工作中,我该如何去锻炼这些能力?全局思维和战略聚焦,又如何帮助我做好当下的工作呢? 所以,在接下来的两讲中,我决定暂缓专栏前进的脚步,邀你坐下来 阅读全文
posted @ 2023-04-20 14:20
程序杰杰
阅读(124)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。 这一讲,我想和你聊聊有关风险控制的话题。 世界,其实是非常脆弱的。几天前,我接到一个电话,得知一个原来公司的下属,因为车祸意外去世了。我和他关系很好,但此时只能感叹生命无常;2020 年,仅仅因为国内外对口罩文化,以及一些疫情防控措施理解的偏差,新冠病毒就得以在世界范围内不断传播 阅读全文
posted @ 2023-04-20 14:19
程序杰杰
阅读(197)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮,很高兴又和你见面了。 上一讲,我们聊了聊全局思维和持续完善体系的构建,目的是为了拔高自己的视角,赋能整个团队。但有一个问题也会随之出现:视角拔高了,看到的问题也就变多了,需要做的工作也就变多了,怎么办? 你可能会想,做啊,成长的机会来啦! 心态很好,很棒!但同时我们也要认识到,管理 阅读全文
posted @ 2023-04-20 14:19
程序杰杰
阅读(105)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮,很高兴又与你见面了。 在技术管理领域,有一个很古怪的现象,不知道你是否有注意到:很多管理者,在面对团队成员的争吵时,会选择冷处理、和稀泥,也有人干脆沉默以对,直接忽略这个状况。 但你肯定知道,理论上,管理者是应该介入争吵,及时调停的 —— 不然团队士气和协作就会受损。 那为什么会有 阅读全文
posted @ 2023-04-20 14:18
程序杰杰
阅读(318)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮,很高兴我们又见面了。 前面我们讲了管理者最重要的三个任务,也就是所谓的“三板斧”。为什么要抡这三板斧呢?是为了自顶向下地搭建优越的架构和制度,最终让业务增长,让飞轮转起来。 换句话说,这是个体系化的解决方案,是顶层设计。 在这一讲里,我们将视角拉低,去近距离地看看在体系内工作的团队 阅读全文
posted @ 2023-04-20 14:18
程序杰杰
阅读(201)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。 前面两讲,我们聊了聊管理者最重要的任务(一)和(二):组织调整到位、加强组织协同效率。 有同学看完后,留言提问:这些都做了,但某个部门事情较杂,人员主动性较差,每天按部就班地工作,没什么激情,怎么办? 别急,这一讲,我们就来聊聊如何激发团队活力,补上管理者三大要务的最后一块拼图。 阅读全文
posted @ 2023-04-20 14:16
程序杰杰
阅读(260)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。 上一讲,我们聊了聊管理者最重要的三个任务之一:组织调整到位,也顺便讲解了下「IT 能力建设的增长飞轮」。因为怕有些同学忘了,所以我们再看一遍这张飞轮图: 在这一讲里,我们主要来关注一下飞轮的叶片 2 :增强协同,也就是管理者的第二个重要任务:加强组织协同效率。 为什么要把加强协同 阅读全文
posted @ 2023-04-20 14:16
程序杰杰
阅读(263)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。欢迎来到我们专栏的第二章:对管理工作的复盘。 在我身边,有些朋友技术很牛,别人调试了一个礼拜的 Bug,他三下五除二就搞定了;别人玩不转的高并发架构,他没用多久就设计完了。领导天天表扬,隔三差五还能给团队做个技术培训,很开心。 接着有一天,公司组织调整,程序员成为了管理者,整个人就 阅读全文
posted @ 2023-04-20 14:15
程序杰杰
阅读(337)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。 作为专栏第一章的结尾,这一讲其实是临时增加的。你能看到,在原本的目录里,并没有关于这一章的撰写计划。 为什么要这样做呢?因为在上一周的更新里,很多读者给我留言,深深地触动了我。我意识到,也许你,以及很多同学,对成长的认知都仍有偏差,我需要更充分地、更深入地和你聊聊。 让我印象深刻 阅读全文
posted @ 2023-04-20 14:11
程序杰杰
阅读(123)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。上周末,咱们专栏编辑找到我说,有一位 2020 年毕业,刚刚入职两个月的热心读者正被一些问题所困扰,希望征求下我的意见。 问题大致如下:工作时,经常遇到不懂的事情,大部分是技术相关的问题。想要提问,却不知道什么问题能问,也不知道怎么问比较好,担心别人因此质疑自己的工作能力。长此以往 阅读全文
posted @ 2023-04-20 14:10
程序杰杰
阅读(227)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。前面我们聊了许多有关职业发展的基础认知。在加餐部分,我想将这些认知串联起来,回答一些在成长中,你可能会实际遇到的问题。 前段时间,我和团队内外许多年轻的同学们聊了聊,大家都在讨论“那位28岁退休的字节跳动程序员”,还引用了网络上比较火的一个词,叫做:“逃离北上广”。几番思量后,一些 阅读全文
posted @ 2023-04-20 14:09
程序杰杰
阅读(55)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。“本质”这个词现在已经烂大街了,我看很多的公众号文章,动不动就说本质、底层原理,这也侧面说明我们每个人面对复杂问题时的心态:我们想直击问题的关键点,找到问题背后的本质。 但,你我也都知道,看透本质终归是一件很难的事。昨天我就还遇到一件让我自己头疼的事情,思考很久之后,还是没有找到好 阅读全文
posted @ 2023-04-20 14:06
程序杰杰
阅读(74)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮。今天,我想和你聊聊关于工作状态和薪资报酬的问题。 为什么要聊这个话题呢?在第一讲中,我们聊到每五年就要登上一个职业生涯的新台阶,很多同学觉得这很难。我必须得说,确实不容易。至少,很多人都还不具备快速成长的先决条件:一个良好的工作状态。 你可能会想:哈,这一定不包括我,我天天加班。注 阅读全文
posted @ 2023-04-20 14:06
程序杰杰
阅读(259)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮,欢迎来到专栏的第一讲。在这一讲里,我想首先和你聊聊关于个人职业发展的规划问题。 作为技术人,大家学习 Java、Golang、算法、架构设计,这些都很重要,很棒!但在职业生涯初期,有一件事也很重要,那就是对职业生涯发展的认知,不然就会白白走上很多弯路。 你可能会想,老乔,你又不认识 阅读全文
posted @ 2023-04-20 13:57
程序杰杰
阅读(195)
评论(0)
推荐(0)
摘要:
你好,我是乔新亮,很高兴能在极客时间,和你聊聊我的一些认知和想法。 首先,请千万别叫我乔老师,虽然大家喜欢这么称呼我,因为我说话总是“一套一套”的……但无形之中,这称呼让我自己也有点惶恐,生怕一不小心就把“学生”带错了方向。因此,我总是避免站在“老师”的角度教授知识。我更愿意作为一个朋友,与你平等地 阅读全文
posted @ 2023-04-20 13:57
程序杰杰
阅读(69)
评论(0)
推荐(0)

浙公网安备 33010602011771号