我们都是小青蛙

其他

完整版:Innodb到底是怎么加锁的

上一篇文章中缺失一点儿东西,再补全一下。学完本文后:妈妈再也不用担心我不知道InnoDB是怎么加锁的了!流传较广,但是错误的一个观点不知道从什么时候开始,下边这个错误的观点开始被广泛的流传:在使用加锁读的方式读取使用InnoDB存储引擎的表时,当在执行查询时没有使用到索引时,行锁会被转换为表锁。这里强调一点,对于任何INSERT、DELETE、UPDATE、SELECT
2021年11月12日
其他

字符从UTF-8转成GBK发生了什么?

字符是什么字符是面向人类的概念,大致可分为两种,一种叫可见字符,一种叫不可见字符。顾名思义,可见字符就是打印出来后能看见的字符。比如a、b、我这样的人眼能看见的单个国家文字、标点符号、图形符号、数字等这样的东东,我们就叫做一个可见字符。不可见字符也好理解,就是之前打印机或者在黑框框里打印字符的时候有时候需要换行,打个制表符啥的,或者在输出某个字符的时候就发出嘟的一声,这种我们看不到,只是为了控制输出效果的字符叫做不可见字符。注意,字符都是单个的喔!。把字符连起来叫做字符串,比如abc,就是由a、b、c三个字符连起来的一个字符串。计算机怎么表示字符计算机只能处理二进制数据,它并不认识字符。为了让计算机能处理字符,人们人为地在字符和二进制数字之间建立起了映射关系,映射的过程可以被称作编码,字符和二进制数字的映射关系也可以被称作编码方案。由于谁都可以制作编码方案,不同的人制作出了不同的编码方案。制作一种编码方案说清楚两个事就可以:•要对哪些字符进行编码•具体地每个字符和哪个二进制数字关联起来虽然说谁都可以制作编码方案,但随着时间的流逝,只有为数不多的编码方案流行起来,比方说:•ASCII:收录128个字符,用7个二进制位就可以进行编码。但通常计算机以字节作为基本的存储空间分配单位,所以在ASCII编码方案中,通常使用1个字节对1个字符进行编码。•ISO
2021年11月3日
其他

从归并排序引发的思考

有非常多的同学,包括小孩子都曾经或者正在觉得用代码实现某个算法就像是在做脑经急转弯——看过答案之后你会觉得非常简单,但自己就是写不出来>_1,所以将j指向的元素1填入结果数组中,并将j自增1,效果如下图所示:•第2步:当前i指向的元素是2,j指向的元素是4,比较i和j指向的元素哪个更小,由于24,所以将j指向的元素4填入结果数组中,并将j自增1,效果如下图所示:•第4步:当前i指向的元素是7,第2个子数组中的元素已经遍历完了,所以直接遍历第1个子数组即可,即将i指向的元素7填入结果数组收纳柜,并将i自增1,效果如下图所示:知道了如何合并两个有序数组为一个大的有序数组之后,我们就可以完成子问题的合并了。继续看在处理细节2时引入的例子:1.1.1组、1.1.2组、1.2.1组、1.2.2组、2.1.1组、2.1.2组、2.2.1组、2.2.2组中仅包含1个元素,相当于子问题已经得到解决,现在需要合并子问题了:•将1.1.1组、1.1.2组中的有序数组合并,使1.1组成为有序数组;•将1.2.1组、1.2.2组中的有序数组合并,使1.2组成为有序数组;•将2.1.1组、2.1.2组中的有序数组合并,使2.1组成为有序数组;•将2.2.1组、2.2.2组中的有序数组合并,使2.2组成为有序数组;如下图所示:小贴士:我们将2.1组的颜色加重,以表明组中的元素顺序进行了重排。现在1.1组、1.2组、2.1组、2.2组分别是4个有序数组,可以继续合并子问题:•将1.1组、1.2组中的有序数组合并,使1组成为有序数组;•将2.1组、2.2组中的有序数组合并,使2组成为有序数组;如下图所示:现在1组和2组分别是两个有序数组,可以继续合并子问题:•将1组和2组中的有序数组合并为一个有序数组。如下图所示:至此,最初排序包含8个元素的数组的原始问题就得到了解决!好了,这个算法的流程就描述完了。相信绝大部分小伙伴还是可以轻松理解上述归并排序的算法流程的,说起来也可以头头是道,但是一旦落实到笔上,就有点心有余而力不足的赶脚了,下面就来分析一下到底是哪里难住了我们~Talk
2021年10月27日
其他

MySQL的COUNT是怎么执行的

众多开发小伙伴在写业务逻辑的时候都会有一个统计行数的需求,此时COUNT函数便成为了首选。但是大家发现,随着数据量的增长,COUNT执行的越来越慢,本文从源码的角度来帮助小伙伴们分析一下MySQL中的COUNT函数是如何执行的。需要声明一点,本文所使用的MySQL源码版本是5.7.22,并且只针对InnoDB存储引擎。在深入介绍之前需要大家具有一些前置知识,才可以顺利讨论。前置知识1——InnoDB的B+树索引为了故事的顺利发展,我们引入一个表:CREATE
2021年10月19日
其他

MySQL的LIMIT这么差劲的吗

'b')区间的第一条记录,然后把回表后把完整的记录返给我哈”InnoDB:“收到,这就去查”,然后InnoDB就通过idx_key1二级索引对应的B+树,快速定位到扫描区间('a',
2021年10月12日
其他

了解百条MySQL军规,不如懂什么是成本

前情回顾经过学习《MySQL索引是怎么推导出来的》,我们知道了对于InnoDB存储引擎来说,表中的数据都存储在所谓的B+树中,我们每多建立一个索引,就相当于多建立一棵B+树。对于聚簇索引对应的B+树来说,叶子节点处存储了完整的用户记录(所谓完整用户记录,就是指一条聚簇索引记录中包含所有用户定义的列已经一些内建的列),并且这些聚簇索引记录按照主键值从小到大排序。对于二级索引对应的B+树来说,叶子节点处存储了不完整的用户记录(所谓不完整用户记录,就是指一条二级索引记录只包含索引列和主键),并且这些二级索引记录按照索引列的值从小到大排序。我们向表中存储了多少条记录,每一棵B+树的叶子节点中就包含多少条记录(注意是“每一棵”,包括聚簇索引对应的B+树以及二级索引对应的B+树)。示例我们举个例子:CREATE
2021年9月29日
其他

MySQL索引是怎么推导出来的

写本文的起因《MySQL是怎样运行的》于2020年11.1日发行至今近一年的时间,已经印刷近两万册,十分感谢各位小伙伴的捧场。不过最近在答疑群里一直有小伙伴说:“书看的时候很爽,以为自己啥都会了,不过过一段时间后就都忘了,面试一问好像都学过,但是就是想不起来具体的内容是个啥”。小孩子在这里需要强调一下,这不是一本入门的书籍,不是随便翻翻就可以学会,需要大家拿出一个完整的时间,找一个笔记本好好记一下笔记才可以学会的。另外,书里涉及大量的细节,比方说我们致力于将记录、页面、索引、表空间中涉及的结构的每一个字节都是干什么的给大家讲清楚,但记住这些细节并不是重点,细节是用来辅助大家理解脉络的。大家如果不清楚脉络而只纠结于细节中,那会让自己看上去很累,但过一周之后就啥也不记得了。本文来尝试以最简单的脉络来帮各位理出一条线,大家有了这条线作为主心骨,就不用怕淹没在细节的海洋中无法自拔了。第1~2章前两章非常简单,主要介绍如何启动MySQL服务器和客户端,以及启动选项和系统变量。没有什么难度,就不花篇幅唠叨了。第3章我们需要明白“字符”是面向人类的概念,计算机需要用一个二进制字节序列来表示字符,由于二进制字节序列和字符的映射关系谁都可以规定,所以市面上产生了各种各样的字符集。数字之间可以比较大小,字符之间也可以比较大小,不过比较字符时取决于人的好恶。比方说有人觉得'A'和'a'是相等的,有人就觉得不相等。所以我们在比较字符前需要事先规定好一个规则来说明谁大谁小,这个规则就是所谓的比较规则。MySQL支持若干种字符集,不同字符集也可以有不同的比较规则,我们可以通过一定语法来进行配置。第4章大家需要知道一条记录实际上是分两部分存储的:重点需要知道在记录的额外信息中有一个两字节的称为next_record指针,通过该指针各条记录可以组成一个单向链表:单向链表中的记录的主键值是按照从小到大的顺序排序的,也就是说这个单向链表是有序的。第5章大家需要知道记录是放在页里边的,
2021年9月22日
其他

《x86汇编语言:从实模式到保护模式》书籍推荐

小孩子在写东西的时候一直在强调两件事:•杜绝后向引用。即用尚未解释过的概念或者后边才会介绍到的概念去解释新概念。•给出足够多的细节。细节是魔鬼,没有细节看过后等于没看。本次推荐的书籍《x86汇编语言:从实模式到保护模式》(以下简称《x86》)完美符合这两条:本书的作者《李忠》也是《穿越计算机的迷雾》(以下简称《穿越》)的书籍,《穿越》是一本本着戏说的态度,实际上认真唠叨计算机从无到有的过程中具体都面临了哪些问题,又是怎么解决的书。《穿越》绝对称得上是诙谐幽默,但对于小孩子来说,绝对是诙谐过头了,感觉快有一半的篇幅是在扯淡,搞得小孩子基本上实在看不下去多少。不过《x86》不一样,《x86》是一本认真唠叨x86处理器是如何使用的书籍,真正的带者读者一步一步的走完x86处理器从实模式到保护模式的路。如果大家在对处理器一无所知的情况下就去看Intel文档,大概率会叫苦不迭,并且觉得它难得高不可攀。《x86》默认读者是一个处理器小白,你甚至可以不知道任何处理器指令。作者从最基础的指令开始着手,开始了一系列提出问题,并解决问题的过程。作者站在用户角度出发,从头开始描述计算机从加电复位后发生的一系列事情:从BIOS到MBR,从MBR到操作系统。在这个过程中我们可以完成一些有趣的事情,比方说向显示器输出一点东西,如何控制显示位置以及光标,了解到呆在硬盘里的程序是如何被加载到内存中执行的,为什么需要函数以及函数是如何实现的,中断是怎么工作的以及还有编写我们自己的中断处理程序、以及在解决这些问题的过程中处理器给我们提供的各种特性是如何使用的。在介绍完实模式后,又花费了一多半的篇幅给我们唠叨x86的保护模式是如何工作的,诸如保护模式下的任务管理、内存访问、动态加载、分页机制、中断处理等较为高级,但却是我们程序员时时都在用到的功能。当然,一本技术书籍的好坏并不是看它涉及到了哪些方面的东西,要不然Intel的文档绝对算得上最好的书籍了。这里需要再一次强调《x86》这本书是真正的做到了“不用没解释过的概念去介绍新概念”这个原则,读者如果在阅读过程中发现了新的无法理解的概念,那大概率是在前边阅读时漏掉了某些段落。因为作者在每一章都给出了相应的源码,又会在书里逐行解释代码的含义,这就会导致某些急于求成的小伙伴跳过一些地方。所以本书也要求高质量读者去本着“不要跳着看”的原则来逐行阅读完本书。上边说了很多好话哈,可能有同学都会认为我是不是收了钱了😂。其实主要是市场上这类做到“不用没解释过的概念去介绍新概念”,真正把读者当小白的技术书籍实在是太少了,少的小孩子看到一本这样的书籍都快泪流满面了。其实本书的缺点也是有的,主要是由于本书给出的细节太多而不模块化,同一个主题的细节会被散落到不同章节的不同地方(当然这应该也是作者故意做的),作者又花费极大的篇幅去逐行解释源码的含义(源码有二三百行那么长,逐行解释一个程序需要花费好几页的篇幅),导致读者在很多时候会有压抑不住跳过的冲动。但是只要稍微跳过某个部分,就会导致后续章节无法连贯阅读,这就需要读者要有很大耐心去反复阅读。另外,不知道是不是有多个作者写作的缘故,会对某些概念有不同解释,诸如汇编地址的表述。瑕不掩瑜,小孩子还是极力推荐以下想深入学习操作系统的同学,必须先深入学习一下处理器是怎样使用的,这本《x86汇编语言:从实模式到保护模式》,搞清楚每一个细节,这样再进行操作系统的学习时候才有事半功倍、游刃有余。
2021年9月17日
其他

CPU和I/O设备交互——一分钟系列

小贴士:小孩子尝试一下在很少的时间里讲清一个知识点。前情回顾通过阅读上一篇文章《编程到底是在编什么》,我们应该知道了:•编程的本质就是在写机器指令,而机器指令的本质就是一连串的二进制位。•指令是被存储到内存中的,CPU会从内存中逐条将指令取出并执行。•指令主要完成下边4个任务:1.load任务:即将内存的数据加载到CPU的寄存器中2.store任务:即将CPU的寄存器中的数据写入到内存中3.jump任务:即不必按顺序执行指令,而是跳转到指定的指令执行4.operate任务:即将寄存器数据、内存数据或者立即数进行算术逻辑运算面临的问题现在面临两个重要的问题:•问题一、数据被存储到CPU的寄存器或者内存的存储单元,人类无法用眼睛看到,所以程序运行过程中都发生了什么事我们无法知道,程序运行的结果我们也无法知道。我们需要某个设备来展示程序在运行过程中我们想要看到的那些数据。•问题二:程序运行过程中所需要的数据可能并不是在编写程序前就准备好的,而是在程序运行过程中动态输入的(比方说在游戏程序中需要玩家手动向程序提供一些数据)。为了解决问题一,我们需要引入一些被称作输出设备(Input
2021年9月10日
其他

编程到底是在编什么

0;}老师说:这是我们学习的第一个C语言程序,这个程序的功能极其简单,就是向显示器上输出一行字符:“Hello
2021年9月3日
其他

像原始人一样数数——计数

简单计数方式视角回到上古时代,人们会有一些计数的需求,如打了多少猎物,娶了多少媳妇儿,生了多少孩子之类。比方说我们想统计一下自己采摘了多少苹果,那可以在地上画一个圈圈(不是诅咒你哈),如图所示:现在圈圈里什么都没有,就说明一个苹果也没采。如果采摘了一个苹果,那么就在圈圈里画一条线,如图所示:如果采摘了两个苹果,那么就在圈圈里画两条线,如图所示:如果采摘了十个苹果,那么就在圈圈里画十条线,如图所示:依此类推,我们采摘了多少个苹果,就可以在圈圈里画多少条线。随着采摘苹果的数量不断增多,这种计数方式需要画的线也会不断增多。假如我们采摘了一万个苹果,那就得画一万条线了,这不把人累死也得累个半死。很显然我们需要改进一下计数方式。小贴士:其实这种简单的通过画线进行计数的方式我们现在还在用,比方说在选举唱票时的计“正”字,就是通过数笔画的方式进行计数的。位置数字系统十进制我们可以找两个圈圈来计数,如下图所示:一开始如果我们收集的苹果不是非常多,比方说现在只收集了十个苹果,那就在右边圈圈中画十条线,如图所示:咦,线都被画在右边圈圈了,那左边那个圈圈是干嘛的呢?我们可以规定当右边圈圈的线的数量特别多的时候,就把右边圈圈中的线都擦掉,然后在左边圈圈里画一条线,也就是左边圈圈里的一条线顶右边圈圈的很多条线。那这个“数量特别多”到底是多少呢?这个是我们人为规定的,比方说我们就规定:当右边圈圈中有十条线的话,就将右边圈圈的线给擦掉,然后在左边圈圈中画一条线。那么上边的那个在右边圈圈中画了十条线的图就可以被改造成下边这样:简而言之就是左边圈圈中的一条线代表的苹果数量相当于右边圈圈中十条线代表的苹果数量,这就是传说中的一节能比十节强。现在同样的一条线,画在左边圈圈里代表的数量就是画在右边圈圈中的十倍,这仅仅是因为圈圈的位置不同而导致的差异,我们就说右边圈圈的权重是1(也就是右边圈圈中的一条线代表一个苹果),左边圈圈的权重是10(也就是右边圈圈中的一条线代表十个苹果)。这两个圈圈中的线代表的全部苹果数量就是:左边圈圈中线的数量
2021年7月30日
其他

学习效率太低效,学会提问是捷径

我们想掌握某一个知识的时候,当然不能像孙悟空一样,把书吃掉,知识就装进肚子里了,现实生活中无非是通过下边两个途径来学习新知识:老师的讲解自己看书或者视频第1条通常适用于在校学生,第2条才是普适方式,毕竟毕业了只能靠自己不是~学习新知识的过程中肯定会碰到问题,碰到问题后的解决方案也不过下边几种:不会就不会吧,不求甚解。看过≈会了,这其实是大部分小伙伴的处理问题方式。上网搜索有无相似问题。如果恰巧有你的问题,那么恭喜你~
2020年12月11日
其他

听说有一个最左原则?这回终于讲清楚了MySQL执行查询时联合索引用几个列的问题

'a'为止(当然,对于获取到的每一条二级索引记录都要执行回表操作,我们这里就不展示回表操作了),如下图所示。也就是说,如果我们使用idx_key_part索引执行查询Q4时,可以形成扫描区间(-∞,
2020年5月27日
自由知乎 自由微博
其他

设计MySQL的大叔为何偏爱ref?

dive,不知道大家还有没有印象。一个很简单的思想就是:使用某个索引执行查询时,需要扫描的记录越少,就越可能使用这个索引来执行查询。创建场景假如我们现在有一个表t,它的表结构如下所示:CREATE
2020年5月18日
其他

小册补充文章集合

小孩子曰:小册虽好,内容有限,不能覆盖方方面面,虽然公众号文章书写比小册随意一些,但基本上每篇文章都需要耗时几个小时,多点的甚至十来天(例如语句加锁分析的文章),各位同学万不可忽略,文章较多,先收藏,慢慢读。【提问相关(这是第一位的)】《小册答疑指南》《提问这件小事儿》《如此重要的能力,可惜大部分人没有》【查询优化相关】《MySQL的server层和存储引擎层是如何交互的》《MySQL中包含IN子句的语句是怎样执行的》《MySQL中IS
2020年4月23日
其他

彻底解决MySQL中的乱码问题

小贴士:本文较长,不适合碎片化阅读,建议用电脑观看。收藏+转发,幸福你我他字符集转换概述我们有必要说明一下,字符其实是面向人类的一个概念,计算机可并不关心字符是什么,它只关心这个字符对应的字节编码是什么。对于一个字节序列,计算机怎么知道它是使用什么字符集编码的呢?计算机不知道,所以其实在计算机中表示一个字符串时,都需要附带上它对应的字符集是什么,就像这样(以C++语言为例):class
2020年4月9日
其他

小册答疑指南

对于阅读《MySQL是怎样运行的:从根儿上理解MySQL》这本小册的同学来说,读书肯定会伴随着问题,有问题不可怕,提到小册答疑群中提问即可(可以添加小册姐微信或者直接添加我的微信进入答疑群,公众号菜单有联系方式)。千奇百怪的问题让我苦不堪言,所以希望各位同学提问前一定要清楚自己的问题是什么,并且使用语法正确、表达清晰、有明确观点的语句表达出来。正确的提问方式如果您在阅读小册的过程中产生疑惑,并且希望得到解答,请按照下边两个步骤提问:说明疑惑位置表明这是小册的第几章节,并且复制让您产生疑惑的原文或者直接截图。请注意声明问题位置时一定要细,精确到某一个词或者某一句话,千万不要将问题定位为整本书/整个章节/整段话。小贴士:请注意,大的问题往往得到的回答也是笼统而无用的,小的问题才能得到明确而仔细的回答。比方说您问我今天下午吃啥呀,我可以回答吃馒头,如果您问我如何挽救美国经济,我应该怎么回答呢?应该重新再写一本书探讨一下么?表达您的观点。请说明是让您是因为什么原因对小册中的某个词或者某段话产生疑惑,一定要列举清楚您的理由。如果有必要的话,请说明您认为怎么改才合适。到我写作本文的时候为止,《从根儿上》这本小册已经建立了8个答疑群(也就是将近4000位小伙伴),每天会产生各种五花八门的问题,其中的绝大部分问题是因为没有遵守不要跳着看原则而产生的,所以这里如果您不是特别熟悉MySQL,请一定记住:不要跳着看!不要跳着看!不要跳着看!不正确的提问方式举例下边列举一些典型的不正确的提问方式不看小册直接提问,比如:“请问redo日志什么时候刷新到磁盘?”“请问gap锁有什么用,插入意向锁是干什么的?”“那三种行锁
2020年3月18日
其他

都2020年了,为了跳槽,这些技术应该掌握

2019年就这么悄悄的过去了,纵使不情愿,我们也得硬着头皮来迎接2020。对于很多同学来说,2020年的头一件事就是做一个非常重要的选择:是继续留着工作,还是勇敢的跳槽。跳槽又不得不面临面试,平时拧螺丝拧惯了,可人家面试都是要造航母的水平,这就很尴尬了。了解小孩子的同学知道《我们都是小青蛙》基本上是不发广告的(不是我不想发,实在是找我打广告的东西太次了,不是培训班,就是卖这课那课的,价格又贵的要死,绝大部分都是忽悠人的,与小孩子的“用最短的时间学会那些曾经晦涩难懂的东西”的初心是不匹配的),不过下边是我要推荐的在掘金上发布的一些小册,这些小册销量和口碑都不错,价格只有十几块、二十几块,与动辄上百上千的课程简直差老鼻子了。小贴士:
2020年1月20日
其他

MySQL中包含IN子句的语句是怎样执行的

对于开发小伙伴来说,对MySQL中包含IN子句的语句肯定熟悉的不能再熟悉了,几乎天天用,时时用。可是很多小伙伴并不知道包含IN子句的语句是怎样执行的,在一些查询优化的场景中就开始找不着北了,本篇文章就来唠叨一下MySQL中包含IN子句的语句是怎样执行的(以MySQL
2020年1月16日
其他

韭菜地里三部曲,咪蒙樊登罗振宇

小青蛙曰:本篇文章转载自公众号:能量行星Planet,该作者着急发文章,连原创都没有标记,经沟通后文末附了他的二维码,有感兴趣同学可以瞅瞅。本篇文章可能会引起部分人不适,在共同遵守“理性讨论原则”的基础上,欢迎交流不同观点,我们始终致力于“怀疑一切”与“理性思考”,请悉知。本文共4313个字,阅读时间:7分钟2019-2020的跨年演讲,互联网词汇发明家,著名的自媒体教父罗振宇又抛出一个振聋发聩的金句:教育的本质就是人点亮人。我们不讨论教育到底是不是人点亮人,但起码不是人恶心人。互联网时代,需要上门推销的工作越来越少,刘一秒,翟鸿燊,陈安之这种旧时代的成功学家们已经逐渐淡出大众视野。但成功学不会凭空死亡,成功学会被营销专家披上漂亮的外衣,再重新回到你的生活里。罗振宇就是这个时代毒性最强的成功学贩子。如果罗粉看到这里觉得我在胡说八道,剩下的内容也不用看了,你的脑子可能还不能处理足够复杂的信息。我们来慢慢分析。01常识拿出来反复论证假如有人跟你这么说:我有一个惊人的发现:人吃得越多,长得就越胖。你会怎么想?这人怕不是个傻子吧。现在我们换个说法:我一个北大的朋友告诉我:他们走访了20多个省,研究了200多个孩子,有一个惊人的发现:大部分小朋友吃得越多,就长得越胖。你们小区的王小明,一天吃八个鸡腿,七岁就长到了120斤;你朋友的孩子张小亮,每天吃十个馒头,现在连蹲着上厕所都困难。这种说法还可笑么?这里面隐藏了很多小细节,不搞文字工作的同学们一般难以察觉出来:“北大的朋友”暗示这事儿比较权威;“走访和研究”说明研究方法科学靠谱;至于“吃的越多长得越胖”……罗教父这个新词汇发明家,当然不会用这么土鳖的措辞。用他的语气应该叫:“食品摄入的头部玩家,正在努力输出他们的横向变革”“王小明和张小亮”这两个例子告诉你,符合结论的案例到处都是;“你们小区”“你朋友的孩子”验证了这两个例子的可信度,说不定你还真见过这俩胖孩子。把常识当发现想要做到极致,我们还得再做一张吓死人的超宽屏PPT:我们闭上眼脑补一下,一个油腻的演讲家站在聚光灯下,把这些包装过的鸡零狗碎跟你娓娓道来……你别说,坚信自己智商正常的人,一个不小心也就着了道了。我们来看看罗教父原话是怎么说的:看到这段快给我笑尿了。我们把画横线的句子翻译一下,就是:一个领域既有好公司,也有烂公司。有些聪明人可能一时半会儿没进入陷阱,没关系,这种“常识论证”肯定不能一波就结束:翻译:人们会过的越来越好翻译:干啥事儿都不容易翻译:要以自身变化来应对外界变化02有人这么评价2018年的跨年演讲:把倒卖收集用户资料,叫大数据;把窥探个人隐私,叫深度学习;把没底线的网上小广告,叫精准营销;反正是能不说人话,就尽量不说人话。费这么大劲,目的是什么?当然是让观众相信自己。不仅要相信,还要让观众经过一番思考以后相信,这样才会有灵魂共鸣的错觉。除了灵魂共鸣,还有装逼。说人话就没有了神秘感和高级感,就没有办法用最复杂的方式来包装最简单的道理。我之前在做咨询师的时候,有人问我:怎样在讲课的时候显得自己很厉害?我说这个简单,你在课程里放20%他们绝对听不懂的内容就好了。那有人来问怎么办?你放心,不仅不会有人来问,他们还会装作一副听懂了的样子,夸你讲的真好。这玩意当然不是我发明的。中国古代的知识分子如果都跟白居易似的,估计会觉得自己无法生存:《宋稗类钞.文苑》:“宋景文修唐史,好以艰深之句,欧公思所以讽之。一日大书其壁曰:‘宵寐非祯,札闼洪休。’宋见之曰:‘非夜梦不祥,题门大吉耶?何必求异如此。还有这么个说法::你接受到的信息和自己的认知有重合的时候,你会更愿意去相信它。进入传销窝点的第一天,正常人都会持排斥态度,因为这符合自己“传销骗钱”的认知;一周以后,相当一部分人谁都拉不走,因为这几天的洗脑教育也符合自己“有人低调暴富”“ZF暗箱操作”的认知。娱乐的看客们就是这么被带进沟里去的。03垃圾观点张嘴就来刚才的常识论证是掰开嘴,这种垃圾论点就是真正的灌毒了。大体上来讲,罗教父的论点分为两类:胡说八道和一本正经的胡说八道。什么是胡说八道?简单来说就是不负责任地乱下定义。想当年,有人说以后是移动互联网的时代,也有人说以后是人工智能的时代,类似耳熟能详的概念我们可以造句:区块链,4G和5G,大数据,O2O,共享经济……网红经济,产品经理,工业4.0,知识付费……新零售,用户体验为王,短视频,各种生态……那么,谁能来告诉我,以后到底是个特么的什么时代???为了表示这种智障论点能够张嘴就来,我们做两个罗振宇式的PPT来说明:高级的胡说八道,不是跟你说一些明显错误或者有争议的话题,而是提出一个你无法证实又无法证伪的概念。比如有人说世界是一个飞行的面条怪物创造的,也有人说世界是上帝创造的,到底谁说的对呢?不好说,因为无法证实也无法证伪,但这种观点我们在近代哲学研究中就已经定性为胡说八道。如果你曾经有幸上过小镇里的野鸡商学院,听过几节民间管理大师的课,对这种乱下定义的事情一定是非常熟悉。我们去百科搜索“伪科学”这个词条:相比科学,伪科学具有其明显的特征:(1)伪科学爱讲故事,现代科学用的则是数学或实验;(2)伪科学喜欢起骇人听闻的标题,科学界其实很少有什么劲爆的发现,科学通常都是一个缓慢的知识积累过程;(3)伪科学夸大单一因素的影响力,科学的观点是“一个结果的发生常常是由多种原因共同决定的”;(4)伪科学常常缺少实验描述,科学是以观察和数学为中心,科学研究通过收集各种观察和实验数据,再用数学工具,形成全面的理论体系;(5)伪科学喜欢混淆因果关系,科学则需要有更多的聚合证据来支持它的结论,严格的排除干扰变量,确定自变量和因变量的关系,不会用简单的相关来推导出因果关系;(6)伪科学采用笼统的描述,科学会对所研究的概念先下一个具体的“操作性定义”而不会只是笼统描述一个概念就开始对其研究。《时间的朋友》观点集锦一个正常的论证,可以没有案例,但一定不能没有逻辑推理。比如牛顿第一定律,今天我们也无法在实验室复原这种匀速直线运动,但我们认为这种论证是正确的。这就是逻辑论证的作用,也可以说是人类的理性之光。我们来换个例子:假如我想论证:所有的乌鸦都是黑色的。如果我说,村东头的那只是黑色的,刘老四房顶上的也是黑色的,所以天下乌鸦都是黑色的。对么?明显是胡扯。正确的论证方式是这样的:1.首先通过逻辑推理,我们假设乌鸦的黑色是出于进化产生的特征。2.再去搜集论据讨论:为什么进化会使乌鸦变黑,论证是否符合假设。3.如果符合,我们再去用实验去验证这个结论,即搜寻案例,村东头和刘老四的乌鸦才能拿来说事儿。4.如果不符合假设,就要考虑重新假设,再验证。简单来说,我说哺乳动物都有肺,不能说:我剁了100多条流浪狗,发现哺乳动物都有肺。您就是剁一万条,也不够数啊。05为什么我们的罗教父从来不讲逻辑论据?很简单,因为这种草率的结论逻辑必然有硬伤,如果硬要讲,估计得让人轰下去。这当然难不倒罗教父这种资深媒体人:讲故事。这和我们看到的垃圾论证方式是一样的:一个论点,加一段故事。读书没用,因为我二舅的邻居小学没毕业身家过亿;你是婊子,因为我们家附近的站街女跟你穿同款渔网袜;你是废物,因为隔壁老王给媳妇买苹果手机,你连苹果耳机都不给我买;好好工作,你看那谁谁,也是一步一步从员工爬上去的。我一个在微软工作的朋友跟我说:中国人有两个特别不好的习惯,一个是完事后盘起腿点一支烟,开始劝小姐从良;另一个是有点钱之后喜欢到处给人讲课,还喜欢说老子的成功你也可以复制。其实我根本没这个在微软工作的朋友,但你看来会觉得这段话好像比直接说更加可信。这就是故事的魅力。讲了足够的故事,只需要稍加点拨,教徒们立刻会有一种宗教般的愉悦感。像不像十年前陈安之老师的成功学课程?几乎一毛一样。06无法证实,也无法证伪的结论很多人都会有这么个感觉:觉得罗教父说的不对,但又说不出来哪里不对。我们先不急着讨论这个问题,先看一张网图。我们说这人啊,总要长点记性。罗老师心里也写满了草泥马,我拿出来说事儿的都是挺红火的企业啊,说黄就黄了,我不要面子的吗?于是2019-2020的跨年演出,我们睿智的罗教父一个公司都不敢再提了。因为具体的、操作层面的胡说八道,非常容易被证伪。那么,漫无边际的胡说八道呢?“中国的复杂性成就了我们这代人”复杂性是什么?对于这个词汇的理解,可以说一千个读者就有一千个吉泽明步。你都找不到问题的边界,还怎么反驳?当然了,这种造句的方式我们也可以学习一下。“竞争的多元化成就了我们这代人”“中国的教育制度成就了我们这代人”“手机的便利成就了我们这代人”“信息爆炸成就了90后这代人”你反驳一个看看?这种句子我一天能写六百多个。我们甚至可以预测一下2020-2021年的跨年演讲:1
2020年1月14日
其他

InnoDB的自增键和row_id用完了会发生什么?

sec)因为c1列是TINYINT类型的,使用1个字节存储数据,它能存储最大的值就是127,如果当该列的值到达127之后,我们继续向表中插入数据,自增列c1的值将会变成什么呢?mysql>
2020年1月6日
其他

小青蛙2019年原创文章集锦

记得收藏喔,要不找不到了哈~【MySQL相关】《事务的ACID属性我就是傻傻的分不清。。。》《子查询是怎么执行的》《Explain详解》《MySQL事务隔离级别和MVCC》《MVCC勘误》《超全面MySQL语句加锁分析(上篇)(求转)》《超全面MySQL语句加锁分析(中篇)(求转)》《超全面MySQL语句加锁分析(下篇)(求转)》《死锁分析》《MySQL的server层和存储引擎层是如何交互的》《MySQL中的定点数类型》《MySQL中IS
2019年12月31日
其他

如此重要的能力,可惜大部分人没有

小孩子曰:小孩子目前发布了两本MySQL小册(当然,小册是纸质书的雏形,后续会陆续发布纸质书)。小孩子觉得不论是自己觉着把书写到多么好的程度,总是会有人看不懂其中的某些章节,出于人道主义考虑,小孩子已经搞了n个500人的答疑群,每天会收到各式各样的五彩缤纷的花式问题(小孩子每天要花费大量时间去解答问题,严重的影响到了小孩子正常学习、工作、休息时间,所以小孩子只负责对小册内容进行答疑,其他问题可以交由群友讨论)。当然不否认有一些小伙伴的问题提的很好,借助他们的问题可以帮助小孩子修改书籍,让阅读体验更佳,不过收到的大部分问题属于白痴式、不过脑子式的问题。今天偶然在鸟哥(就是)的网站上看到了一篇名为“提问的智慧”一文,于是找到出处,原文较长,小孩子看后删除一些内容给各位观众老爷(小孩子本想多删除一些,因为原文确实较长,但是读下来发现真特么有趣,所以主要删了一些关于发送电子邮件的注意内容),希望在如何提问的这个问题上对大家有些帮助(学会如何提问是一项极其重要的能力,其重要性远比掌握几门编程语言更重要,虽然这项能力应该在幼儿园、小学时期就逐渐掌握,可惜大部分人没有🤷♂️)。好的下边是正文。本指南英文版版权为
2019年12月5日
其他

容易被忽视的MySQL字符集问题?

我们都是小青蛙,呱呱呱呱呱!每天快乐的唱歌,心中志气大~现象在使用MySQL客户端书写SQL语句的时候,我们可以在字符串前边加_charset_name的符号,其中的charset_name对应着某个具体的字符集,废话不多说,先写两个例子看一下:mysql>
2019年12月4日
其他

MySQL中NULL值引起的小锅

我们都是小青蛙,呱呱呱呱呱!喜欢快乐的生活,最爱说笑话~在阅读本文前最好越多过下列文章,否则文中出现的部分名词大家可能会有点儿陌生:MySQL中IS
2019年11月26日
其他

MySQL介于普通读和锁定读的加锁方式

在阅读本文前最好先看过三篇语句加锁分析文章:超全面MySQL语句加锁分析(上篇)(求转)超全面MySQL语句加锁分析(中篇)(求转)超全面MySQL语句加锁分析(下篇)(求转)事前准备为了故事的顺利发展,我们先建一个表,并向表中插入一些记录,下边是SQL语句:CREATE
2019年11月22日
其他

关于事务和锁的一些细节

进入阻塞状态因为获取不到hero表中number值为1的聚簇索引记录的S型正经记录锁,所以事务T2进入阻塞状态,那么在innodb_lock_wait表中会留下一条记录:mysql>
2019年11月15日
其他

个人所得税涨了,日子又拮据了一点

小孩子最近很苦逼,靠卖小册获得的收入的个人所得税从%11.2上涨到了16%,收入又多交给国家5%,小孩子又不在公众号发各种卖课的广告(小孩子拒绝了20多个卖课广告😂,我就是个死要面子的人,不想同流合污),感觉快入不敷出了,所以在这再发个自己产的小册的广告吧。小孩子写了《MySQL是怎样使用的:从零蛋开始学习MySQL》(给菜鸟同学准备的)和《MySQL是怎样运行的:从根儿上理解MySQL》(给不是那么菜鸟的同学准备的)两本书,目前还是以小册的形式在掘金售卖,有在工作中或者面试过程中被MySQL打击的童鞋们可以支持一下小孩子,下边是小册海报(扫码购买是八折优惠的):另外,我们现在已经有了8个微信群来回答大家的问题(是的,每天除了码字,就是花时间来回答问题)。如果大家有关于小册的问题,我一般看到就会回复(如果没有回复一般是没看到,可以@混曰子),其他的问题大家也可以提,不过我就不保证恢复了,毕竟我也挺忙~如果各位同学已经学习过小册并且有所收获的话(听到了很多同学的面试反馈,数据库原理方面的东西再不会是老大难了),真心希望帮着转发一下,帮一下目前处于亏钱写作状态的作者(毕竟是离职专职写作,我再撑两年,要是实在挣不到钱就得改行了,有兴趣的同学可以看一下这篇文章:)。另外,考虑到目前还在读大学的同学经济不宽裕,我觉着应该再打个折,所以跟掘金的同学要了50个五折码,如果有大学生同学们想购买这两本小册的话,可以找我领一下五折码,先到先得哈(扫描下边二维码加我微信,当然要跟我证明一下你是学生噻~
2019年10月31日
其他

补数到底是个什么玩意儿?从根儿上理解一下

10也就是说:在做只使用1个十进制位表示的数字之间的减法操作时,减去一个数等于加上这个数的补数然后再减去10,减去10的操作其实就相当于直接把和的进位忽略掉,得到的就是原减法的结果。6
2019年10月30日
其他

代表程序员气质的,是秃头还是大胡子?

事情起源于我前些天发的一条朋友圈:我只是吐槽了一下许多培训机构的老师把自己弄的跟理发店的Tony一样,顺带说了一下我想象中牛逼程序员的样子。没想到同学们的关注的重点竟然是觉得秃头程序员更牛逼一点。今天心血来潮,亲自扒一扒代码界知名度较高的一些大佬的外形到底是个啥样(排名不分先后)。C语言之父,UNIX之父:Dennis
2019年10月21日
其他

量子波动速读?真是笑死我了

我是一个喜欢看B站的人,不过不是看二次元,而是在B站上看抗日神剧。偶然有一天刷到了一个画风特别奇特的视频,给大家看一下:WHAT?一群小孩在抱着书扇风?不不不,那是在展示所谓的“量子波动速读”技术,啥是个“量子波动速
2019年10月17日
其他

日本19年19个诺贝尔奖,怎不叫人眼红

小孩子曰:10月9日,瑞典皇家科学院宣布,将2019年诺贝尔化学奖授予美国科学家约翰·B·古迪纳夫、M·斯坦利·威廷汉、以及日本科学家吉野彰,以表彰他们在锂电池方面做的贡献。当然,看热闹的同时发现了个事儿,就是这次的诺奖获得者又有一名日本籍教授,仔细一数,在过去的19年中,日本连续获得了19次诺贝尔奖,怎能不叫人眼红~
2019年10月10日
其他

MySQL冷知识:t1.id=t2.id=t3.id看着咋这么怪呢?

sec)噫,发生了奇怪的事情,结果集中的第一条记录是符合我们预期的,但是剩下两条记录不符合我们预期,其中t3.id的值和t1.id、t2.id是不一样的,这是什么鬼呢?哈哈,其实条件t1.id
2019年9月29日
其他

《MySQL是怎样使用的:从零蛋开始学习MySQL》上线啦

通知一下各位,为MySQL萌新准备的《MySQL是怎样使用的:从零蛋开始学习MySQL》正式以小册的形式在掘金上架了。本小册的初稿是在2017年末至2018年初完成的,后来在微信公众号【我们都是小青蛙】中发表了其中的一些文章,但是年代久远。当时写作十分不严谨,导致文章中出现了很多bug以及很多地方阅读体验十分差劲的情况,所以最近我花了2个月的时间重新整理书写来让文章内容更准确、更系统,以期待给读者一个不错的阅读体验。本书是面向MySQL小白用户的入门书籍,全面介绍MySQL该如何使用,包括增删改查语句以及一些较为高级一点的主题。小孩子的白日梦小孩子想成为一个计算机大神,无奈学习道路上充满了艰难晦涩的书籍文章,当小孩子学会一门学科时回头再看发现这东西也不难嘛,为啥好多书籍会把这些简单东西复杂化呢?于是小孩子做了一个让周围同事和家人都很惊讶的决定——离职,然后花自己的全部精力去打造一个计算机科学学习的金字塔,从底层硬件、操作系统到应用程序的每一个方向都去搞一本通俗易懂但却十分深入的书籍,如果可能的话,希望能做一些类似Crash
2019年9月26日
其他

掘金倒闭了?《MySQL是怎样运行的》小册还能看么?

从今年6月中旬开始,掘金的同学发现支付有一个大bug,别人可以通过bug来赚取非法收益,所以紧急关停了掘金支付。由于掘金的一些内部原因(具体啥原因我也不知道🤷♂️)这个bug一直没有提到一个很高的优先级来解决。在这3个月里,断断续续的有几百位同学通过公众号后台或者直接添加我的微信咨询掘金支付啥时候能好,其中有好多同学还每隔一段时间就询问一次,在这里再一次给大家说一声抱歉。在对给大家带来的问题感到很抱歉的同时,我也真真切切的感受到了这本《MySQL是怎样运行的》给很多同学带来了很多收益(三个月的时间卖了8400多册,重点是我是一个毫无title的作者),让我再次对当初辞职来写一些通俗易懂却又深刻细致的技术书籍的决定感到无比的正确,虽然这两年只有靠卖小册的一点收入(只是工资的几分之一),但是我相信我创作出来的东西会慢慢的帮助到成千上万,甚至是十几万程序员的快速成长,快乐的学习,这种成就感是以前的工作所给不了的。在此期间,有很多同学咨询我掘金是不是快要倒闭了,可不可以把小册放到别的平台上之类的问题。在此统一回复:掘金没倒闭,他们可能在做一些更重要的事情(虽然我也不太理解为啥这么久才修bug这个问题)。我之所以在掘金平台上卖小册,其实还是觉得掘金这个平台的商业气味不是那么浓重,技术氛围还是很好的,我虽然需要赚些钱来贴补家用,但始终觉得不应该收同学们太多的钱,应该由口碑造成影响从而提升销量,量大了我赚的钱自然也不少。小贴士:
2019年9月25日
其他

隐藏在优先级队列后边的那个神秘结构

小贴士:本文中的图使用PS画的,真可谓杀鸡用牛刀~PriorityQueue翻译成中文就是优先级队列。所谓优先级队列,就意味着一个优先级比较高的元素入队的话,可能并不是直接插到队尾,可以根据他的优先级等级插入到队中的某个地方,如果他的优先级特别特别高,就会直接被插入到队首。举个栗子可能更好理解,比如火车站排队的时候是军人优先的,如果一个兵哥哥来排队的话,他可以直接插到队首去买票,而不是像普通旅客一样从最后排起。小贴士:当然现实中兵哥哥一般也不会用这种特权~下边我们给个例子来看一下这个所谓的优先级队列怎么使用:public
2019年9月24日
其他

推荐一些学习MySQL 进阶的书籍/资料

小贴士:由于微信公众号中书写的链接不能直接点击,所以建议大家点击最后的阅读原文来观看,效果会好一些。写作《MySQL是怎样运行的:从根儿上理解MySQL》这本书的过程中,除了直接阅读源码之外,还参考了许许多多的优秀书籍/资料,下边列举一些对编写本书帮助比较大的一些(有一些重要的资料记不清了,原谅我是一个不严谨的作者),希望有想在MySQL领域继续深度学习的同学可以参考,希望对各位有用。一些链接MySQL官方文档:https://dev.mysql.com/doc/refman/5.7/en/MySQL官方文档是写作本书时参考最多的一个资料。说实话,文档写的非常通俗易懂,唯一的缺点就是太长了,导致大家看的时候无从下手。MySQL
2019年9月19日
其他

《操作系统导论》书籍推荐

先把这书的封面展示一下:由于我把《MySQL是怎样运行的:从根儿上理解MySQL》的纸质版交给了人民邮电出版社出版,我从他们那里找了许多书来读,其中就包含这本《操作系统导论》。说实话,这本书我只花了一天时间把书里涉及虚拟化的一部分大致看了一下,就情不自禁的想推荐给大家看,只想说:作者太特么逗了~
2019年9月12日
其他

虚拟内存是个啥 | 一分钟系列

注:一分钟系列的篇幅都不长,适合吃饭蹲坑、地铁公交上食用~
2019年9月10日
其他

MySQL:为什么查询列表中多了它,GROUP BY语句就会报错呢?

BY子句的查询语句中看出来,我们只在查询列表处放了分组列subject以及对该分组中的记录调用的聚集函数AVG,那如果我们把不是分组列的字段也放到查询列表中会出现啥情况:mysql>
2019年8月20日
其他

写技术文章/书籍的四个指导原则

不知不觉专职写技术文章/书籍的时间已经有两年了,刚开始是摸着石头过河,什么东西都是尝试着来,今天再回头看我最初写的一些东西还是蛮幼稚的,希望再过两年看我今天写的这些东西也能产生这种感觉吧(那才能说明我进步了嘻嘻)。当我们从事一门工作时,首先要界定清楚我们要达到的目的是什么。对于写技术书籍/文章的我来说,目的很简单,就是:让同学们更快、更舒适的掌握我想让他们掌握的那些知识。达到这个目的比较困难,不过在不断探索中逐渐形成了我自己的一套写作方法论,今天这篇文章就着重于我自己提出的写技术文章的四个指导原则,主要是给下边两类同学看:对于刚刚开始写作的同学们,希望大家可以少走些弯路。对于学不懂某一门专业知识的同学们,虽然我不能让大家立即把专业知识学会,但是至少可以让大家明白自己为什么学不会。小贴士:
2019年8月15日
其他

从剥鸡蛋皮说起的大端法和小端法 | 一分钟系列

8个位)。每个格子都有它唯一的编号,称之为内存地址。那么:如果我们的计算机是32位的话,理论上可以访问的内存格子个数就是2³²(也就是4GB),相应的内存地址范围就是:0
2019年8月13日
其他

我们都是小青蛙,呱呱呱呱呱

很多同学纠结为啥公众号叫“我们都是小青蛙”,也有很多大佬跟我说这名起的有点儿扑朔迷离,咱今儿个来探讨探讨。本文是一篇旧的扯犊子文,给新关注的小伙伴了解小青蛙用。来来来,各位,神曲献给各位,这就是“我们都是小青蛙”的出处,从小唱到大的,也是现在我的手机铃声,特有趣,特好玩儿,特有料:尤其是歌词里头的这几句:有天遇到我的小天鹅千万别笑我是赖蛤蟆青蛙一定也能变王子和她一起来跳恰恰恰别有一番《追梦赤子心》的味道,却没那么歇斯底里~我是从哪里听到这首歌的呢?哈哈,其实是个电视剧,特特特特特特特特特特特特特特别有趣的电视剧,各位茶饭无心,愁肠百结,怅然若失的时候拿出来看看,绝对是最佳治愈性良药~
2019年7月24日
其他

快速理解为啥这个查询使用索引,那个查询不使用索引,学会了才发现:真tm简单

'b');所以现在s1表的聚簇索引示意图就是这样:s1表的二级索引示意图就是这样:从图中可以看出,值为NULL的二级索引记录都被放到了B+树的最左边,这是因为设计InnoDB的大叔们有规定:We
2019年7月19日
其他

MySQL中IS NULL、IS NOT NULL、!=不能用索引?胡扯!

NULL;那它的查询示意图就如下所示:从图中可以看出,对于s1表的二级索引idx_key1来说,值为NULL的二级索引记录都被放在了B+树的最左边,这是因为设计InnoDB的大叔有这样的规定:We
2019年7月15日
其他

MySQL中的定点数类型

4)存储时共占用8个字节,具体内容为:0x80010DFB38D204D2有的同学会问,如果我们想使用定点数类型DECIMAL(16,
2019年7月10日
其他

什么, 0.3 - 0.2 ≠ 0.1 ? 什么鬼

惨痛的历史教训记得还在上学那会儿,给我们上《运筹学》的老师留了一个课程实验,就是让我们每个人都去实现一个书中所讲的算法。由于当时完全没有什么分层、模块化的啥概念,写代码就是一股脑往里塞逻辑,写出来的代码用一坨形容完全不为过。当我实现完算法之后,开始弄几个值作为输入进行测试,发现有的值可以测试成功,有的却不行,怎么办呢?调试呗,面对着那么一大坨乱糟糟的代码,调试简直是灾难,好像花了整整一下午加晚上的时间去调试,调试的我两眼冒金星,脖子转不动,真是:写代码一时爽,调试火葬场。最后我竟然发现了一个神奇的现象(也是后来一直铭记的教训):0.2
2019年7月8日
其他

死锁分析

闲话:小青蛙很久没发文,不是小孩子挂了,是小孩子正在着急改稿子,准备出《MySQL是怎样运行的:从根儿上理解MySQL》的纸质书,在小册的基础上增删了一个半月,上周日终于改完了。这本破书从去年三月算是正式开始(之前也写了一些内容,但不正式),耗费了我一年多的青春时光,一年多的007工作制,只为了给大家一个不错的学习体验,让那些晦涩难懂的知识变得简单自然。原创文章写起来很费时,短则数个小时,长则数周,原创不易,且看且珍惜(不是我不想转载,实在是没什么能转的)。注意:本篇文章适宜在电脑上观看。如果我们的业务处在一个非常初级的阶段,并发程度比较低,那么我们可以几年都遇不到一次死锁问题的发生,反之,我们业务的并发程度非常高,那么时不时爆出的死锁问题肯定让我们非常挠头。不过在死锁问题发生时,很多没有经验的同学的第一反应就是成为一只鸵鸟:这玩意儿很高深,我也看不懂,听天由命吧,又不是一直发生。其实如果大家认真研读了我们之前写的3篇关于MySQL中语句加锁分析的文章:超全面MySQL语句加锁分析(上篇)(求转)超全面MySQL语句加锁分析(中篇)(求转)超全面MySQL语句加锁分析(下篇)(求转)加上本篇关于死锁日志的分析,那么解决死锁问题应该也不是那么摸不着头脑的事情了。准备工作为了故事的顺利发展,我们需要建一个表:CREATE
2019年7月3日
其他

关于高校教育的一点扯犊子(时值高考,旧文再拿出发一下)

现在中美贸易战进行的如火如荼,华为中兴的事情被炒的热热闹闹,我们什么时候能有自己的高端CPU,什么时候能有自己的高端机床,什么时候能有自己的高端发动机,什么时候能有自己的高端电镜,什么时候能多出口一些高精尖技术,而不是衣服鞋帽?还有4天就要高考了,我觉得问题的症结还是在教育,我还是很觉得我们的中小学教育搞得的确不错(看看那些早出晚归的苦逼高中生),如果高校的教育牛逼一点,做出上边那些东西应该不是啥难事儿。好了,正文开始~
2019年6月3日
其他

MySQL的server层和存储引擎层是如何交互的

CHARSET=utf8;我们为hero表的id列创建了聚簇索引,为name列创建了一个二级索引。这个hero表主要是为了存储三国时的一些英雄,我们向表中插入一些记录:INSERT
2019年5月27日