自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 Java同学有必要学MySQL吗? 专为研发同学定制的MySQL面试指南

一、给研发同学看的面试指南1、MySQL的修仙之路,图文谈谈如何学MySQL、如何进阶!2、数据库面经,常见的面试题…3、谈谈MySQL中基数是什么?4、聊聊什么是慢查?如何监控?如何排查?5、对Not Null字段插入Null值有啥现象?6、能谈谈year、date、datetime、time、timestamp的区别吗?7、你有没有搞混查询缓存和Buffer Pool?谈谈看!8、你知道数据库缓冲池中的LRU-List吗?9、了解InnoDB的FreeList吗?谈谈看!10、了解F

2022-02-04 18:20:25 1793

原创 Golang进阶教程,揭开数据库中间件神秘的面纱

文章目录一、Centos7、Mac安装MySQL二、主从复制原理2.1、基于binlog_filename + position2.2、基于GTID三、my.cnf四、测试SQL五、中间件使用、概念串讲六、总揽启动流程七、权限管理实现原理八、MySQL协议-Handshake!和中间件握手机制原理九、中间件不断接受处理客户端SQL原理十、中间件是如何执行你的select语句的?十一、读写分离实现原理十二、赠送Proxy源码一、Centos7、Mac安装MySQL笔记地址:https://www.cnbl

2021-11-28 15:10:54 754

原创 包教包会的:Docker容器间网络互联原理

[TOC]一、今天我们要搞明白的实验如上红字所描述:同一个宿主机上的不同容器之间的网络如何互通的???下面就一步一步探索答案!二、前置网络知识2.1、docker默认为我们创建的网络我们安装完docker之后,docker daemon会为我们自动创建3个网络,如下:~]# docker network lsNETWORK ID NAME DRIVER SCOPEe71575e3722a bridge bridge

2021-11-05 10:42:28 534

原创 Docker里面没有你期望的命令、甚至没有yum怎么办?

分享小知识点跟大家分享一个实用的小知识点有时候在docker容器里面不仅没有你期望的那些常用的命令,甚至没有yum命令让你去安装那些常用的命令怎么办呢?不要慌!没有yum命令说明这个容器的系统很可能不是Centos系而是Ubuntu或者其他操作系统。你可以通过命令cat /proc/version查看是否是乌班图如果是ubuntu的话你可以使用apt命令去下载期望的命令 ##跟新apt-get updateapt install vimapt install wget#ping a

2021-10-07 14:54:56 3894 6

原创 后端如何存储表情包?

前几天项目需要后端支持存储输入法中的表情包,一开始以为挺复杂,结果大意了。站在巨人的肩膀上让后端支持存储表情包简单的很。数据流很简单如下:所以与其说是让后端支持存储表情包,倒不如说成是让MySQL支持存储表情包。而且像123、abc这种字符串也好,或者是123这种数字也好,亦或是表情包也罢,他们其实都有自己对应的编码格式、或者是编码表。就好比ASCII编码表中包含了a、b、c...z 等如下:ACSII表中的符号占一个字符,对欧美佬来说,ACSII表中的符号可能以及基本够用了,但是对亚太地区

2021-09-20 10:32:01 338

原创 程序挂了之后别再跟我说让我帮你重启啦! 让supervisor帮你搞定...

[TOC]文案:程序挂了之后别再跟我说让我帮你重启啦! 让supervisor帮你搞定...有啥用?很多我们项目排期进入联调、测试阶段,如果QA同学是直接跟你要一个后端环境的话,那简单点大概率你就直接使用./xxx &的方式启动程序。但是说不定他测着测着触发了啥预期外的东西,程序就挂了。这时你可能还没到公司呢!QA同学就给你打电话来了,一顿客套话,辛苦xxx同学帮忙启动一下后端的程序......所以了解下supervisor这个工具还是很有必要的,它可以自动将挂了的程序重新拉起来。然后我们

2021-09-02 09:02:36 236

原创 程序员对技术的态度,YYDS?算个P?够用就行?

[TOC]杂谈-我对技术的态度开场白,为啥写这种软文其实写这种软文,类似于记日记。写的过程,其实也是一种思考,在跟自己交流,类似自言自语。去分析大环境然后拟定自己规划。每个人在不同的阶段对这些编程技术都有不同的看法。然后跟大家分享一下我对技术对态度,虽然我进入这行的时间不长,但是对技术的看法也是会有变化的。当然,我也不会跟大家贩卖焦虑啦,只是说一下自己的想法。其实大家都能感觉出来,人们对事物的很多方面的认知是会不断变化的。远的不说,就好比现在回忆大学时期的自己,虽然毕业时的结果符合预期,但是只

2021-08-21 14:09:28 237

原创 这一次!我在百度告诉你,当你请求百度时都发生了什么...

文章目录一、Hi All二、同一个局域网中不同主机的互联三、跨网段不同主机的互联四、百度的响应包如何再打回到你的机器?五、求关注啦!一、Hi All这一次,我在IDC机房告诉你,当你请求www.baidu.com时都发生了什么?以及数据包经历了怎样的过程才被转发到百度的IDC机房的、以及你的电脑又是如何接收到百度的返回的数据包的!这篇文章会串讲:IPv4、MAC、DNS、交换机、ARP、路由器、路由表、NAT、NAPT、私网、公网、OSI7层网络模型、以及不同机器互联互通原理等计算机网络知识点。好,

2021-08-21 11:33:52 304 1

原创 面试官狂问我各种锁怎么办?愣着干嘛?进来白嫖啊!

2021-08-02 13:56:40 156

原创 面试被问如何排查慢查询(执行计划)怎么办?愣着干嘛?进来白嫖呀!

[TOC]一、阅读前其实录制了一个视频专门讲解这篇文章,视频中讲的比下文还全哦视频链接:https://mp.weixin.qq.com/s/wGcODm6gfy6JOvkcKp-8MAhttps://mp.weixin.qq.com/s/wGcODm6gfy6JOvkcKp-8MAOow!想白嫖explain实战部分用到的建库SQL、存储过程等脚本可以通过上面的视频链接关注,后台回复:explain即可领取哦~二、explain 实战2.1、初识执行计划:获取sql执行计划的

2021-07-22 10:51:54 474

翻译 B站挂了之后出现的tengine是个啥?

一、描述晚上刚洗漱完之后听同学说:B站挂了?woc?真挂了?嗯!确实挂了,404的状态码,懂的都懂。不过,最下面的tengine字眼吸引了我的注意,一时兴起,打算看看它是个什么东西,起码搞一个hello world出来,所以特意去购买了一台服务器,打算搞一个hello tengine服务器就位,准备开干!二、官方的介绍Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网

2021-07-14 10:34:36 2203

原创 面试官:聊聊Double Write吧!

文章目录问题引入- 断电了不一会 - 来电了Double write工作流程恢复的过程配置参数疑问推荐阅读问题引入- 断电了今天为大家介绍一个新的名词:double write。相信你还记得,我之前有写笔记跟大家分享过,在MySQL组织数据的基本单位是存在于磁盘上的数据页。数据页被读取到内存(Buffer Pool)中后被称为缓存页。默认情况下每个数据页的大小是16kb,数据页中存储的就是一行行真实的记录,也叫做数据行。mysql> SHOW GLOBAL VARIABLES LIKE 'in

2021-05-08 15:08:35 375 1

原创 全网最清楚的 MySQL的insert buffer和change buffer 串讲

文章目录一、前言二、问题引入2.1、聚簇索引2.2、普通索引三、change buffer存在的意义四、再看change buffer五、change buffer 的限制六、change buffer 相关参数七、查看你的MySQL的change buffer八、灵魂拷问九、参考十、推荐阅读(欢迎关注)一、前言终于《为研发同学同学定制的MySQL面试指南》第30篇更新来啦~说来话长,都说百度是养老厂,结果偏偏干出了pdd的感觉。最近工作确实比较忙,然后周六日又想放松一下接连好多周六日都和同学出去游玩

2021-04-21 11:14:46 1590 5

原创 白日梦的Elasticsearch实战笔记,ES账号免费借用、32个查询案例、15个聚合案例、7个查询优化技巧。

一、导读Hi!大家久等了!时隔10天,白日梦的Elasticsearch笔记进阶篇终于甘完了!本次更新依然是干货满满!下面会和大家分享 32种查询方法、15中聚合方式、7种优化后的查询技巧。欢迎大家转发支持!如果对ES中的各种概念不太清楚可以去看上一篇文章,白日梦的ES笔记-基础篇,并且有些概念不理解并不会影响你看懂本文中为大家介绍的各种查询方式。下一篇(白日梦的ES系列笔记第三篇)文章会跟大家一起杀回到基础部分,系统的做一次概念上的扫盲!最后一篇(ES系列笔记第四篇)以编程语言实战为主,不出意

2021-01-24 11:34:12 1035 2

原创 白日梦的Elasticsearch系列笔记(一)基础篇-- 快手上手ES

文章目录一、导读1.1、认识ES1.2、安装、启动ES、Kibana、IK分词器二、核心概念2.1、Near Realtime (NRT)2.2、Cluster2.3、Node2.4、Index2.5、Type2.6、Document2.7、一个不严谨的小结:2.8、Shards & Replicas2.8.1、问题引入:2.8.2、什么是shard?2.8.3、shard的默认数量2.8.4、如何拓容Cluster2.8.5、举个例子:三、入门探索:3.1、集群的健康状况3.2、集群的索引信息3.

2021-01-14 10:38:30 768

原创 全网最牛X的!!! MySQL两阶段提交串讲

文章目录一、吹个牛二、事务及它的特性三、简单看下两阶段提交的流程四、两阶段写日志用意?五、加餐:sync_binlog = 1 问题六、如何判断binlog和redolog是否达成了一致七、两阶段提交设计的初衷 - 分布式事务八、再看MySQL两阶段写日志九、留一个彩蛋十、推荐阅读(公众号首发,欢迎关注白日梦)一、吹个牛面试官的一句:“了解MySQL的两阶段提交吗?” 不知道问凉了多少人!这篇文章白日梦就和大家分享什么是MySQL的两阶提交到底是怎么回事!不管你原来晓不晓得两阶段提交,相信我!这篇文

2021-01-10 14:59:57 654

原创 删库后!除了跑路还能干什么?

文章目录前言数据备份有哪些种?实用的mysqldump备份方式得先知道什么是GTID看一条binlog长啥样数据恢复推荐阅读-白日梦的MySQL专题推荐阅读-二本应届生的大学生活,已上岸百度下一篇:两阶段提交和分布式事务前言Hi,欢迎订阅白日梦的MySQL专题!这篇文章我们一起闲聊,如果你不小心把MySQL中的数据删了,除了跑路还能干啥?看完本篇你将了解:常见的数据库备份方式、mysqldump实战、一条binlog长啥样、什么是gtid?什么是binlog位点?mysqlbinlog数据恢复实战

2021-01-09 16:00:44 312

原创 进军BAT!数据库面试简答、30道高频面试题

文章目录一、MySQL问答1、数据库sql语句查询,跨表查询有哪几种方式2、数据库的索引用到的是什么数据结构?3、mylsam、innodb的区别4、MySQL的Gtid复制原理是什么?5、同步、半同步、异步复制原理是什么?6、说说你了解的MySQL慢查询?7、说说MySQL的执行计划8、说说MySQL支持的数据类型9. 了解数据库如何备份吗10. Oracle和Mysql的区别11. 事务的四种特性12. 四种隔离级别以及什么是脏读,幻读,不可重复读13. MySQL中 主键索引、普通索引、唯一索引的区别

2021-01-07 15:57:52 434

原创 二本应届生的大学生活、2020年总结(已上岸百度)

文章目录一、今年互联网人才供求的现状:二、我的大学生活:2.1、我的大一、大二2.2、我们的工作室2.3、大三上学期末、开始投简历2.4、疫情来了2.5、2月份春招我上岸度小满2.6、5月份,北漂2.7、9月份,重新参加秋招三、我为什么取笔名:赐我白日梦四、面经分享、帮改简历、帮你内推五、2020年总结一、今年互联网人才供求的现状:先说说现在的行情吧,也不知道现在互联网行业人才是不是真的供大于需,反正虽然大型互联网企业或者是那些叫得上名字的独角兽企业多多少少都有点卡学历的情况。校招的时候,两个候选人能力

2021-01-01 11:39:51 1242 1

原创 百度实习生,以修仙者的角度聊聊怎么学MySQL,不来看看你的修为如何吗?

目录因为我个人比较喜欢看修仙类的小说,所以本文的主体部分借用修仙者的修为等级,将学习旅程划分成:练气、筑基、结丹、元婴、化神、飞升六个段位,你可以看下你大概在哪个段位上哦!本文目录:我为什么要写这篇文章都这么卷了,是时候好好学MySQL了!勾勒脑图练气期筑基期结丹期元婴期化神期飞升联系我 be friends我为什么要写这篇文章首先我做一下自己介绍:大家好,我是白日梦。大三上学期末尾我尝试投递简历,当时很幸运拿到了度小满金融的offer,今年也就是2021年的3月份入职

2020-12-21 09:55:35 153

原创 小白都能看懂的:MySQL数据页以及页分裂机制

文章公号 首发!连载中~ 欢迎各位大佬关注, 回复:“抽奖” 还可参加抽????活动文末有二维码一、知识回顾回顾一下之前和大家分享的知识点看了前面的文章,想必你肯定了解了什么是Buffer Pool、LRU-List、Free-List、Flush-List,你也知道了当MySQL增删改查时,内存中发生了什么,以及这几个双向链表是如何配合工作的。通过阅读上一篇文章你也一定了解了:你create出来的table其实是属于一个表空间的,而所谓的表空间其实对应着一个真实存在于物理磁盘上的文件。并且

2020-12-13 14:01:36 1294

原创 小白都能看懂的: MySQL的数据行、行溢出机制吗?

文章目录一、行 有哪些格式?二、紧凑的行格式长啥样?三、MySQL单行能存多大体量的数据?四、Compact格式是如何做到紧凑的?五、什么是行溢出?六、行 如何溢出?七、思考一个问题推荐阅读文章公号 首发!连载中!关注微信公号回复:“抽奖” 还可参加抽????活动在前面的文章中,白日梦曾不止一次的提及到:InnoDB从磁盘中读取数据的最小单位是数据页。而你想得到的id = xxx的数据,就是这个数据页众多行中的一行。这篇文章我们就一起来看一下数据行设计的多么巧妙。一、行 有哪些格式?你可以像

2020-12-13 14:01:02 310

原创 谈谈什么是MySQL的表空间?

今天我要跟你分享的话题是:“大家常说的表空间到底是什么?究竟什么又是数据表?”这其实是一个概念性的知识点,当作拓展知识。涉及到的概念大家了解一下就好,涉及的参数,留个印象就好。一、什么是表?但凡是用过MySQL都知道,直观上看,MySQL的数据都存在数据表中。比如一条Update SQL:update user set username = '白日梦' where id = 999;它将user这张数据表中id为1的记录的username列修改成了‘白日梦’这里的user其实就是数据表。当

2020-12-13 14:00:30 198 2

原创 MySQL必知必会:用十一张图讲清楚,当你CRUD时BufferPool中发生了什么!以及BufferPool的优化!

一、收到了大佬们的建议1、篇幅偏短,建议稍微加长一点。这点说的确实挺对,有的篇幅确实比较短,针对这个提议我会考虑将相似的话题放在一篇文章中。但是这可能会导致我中断每天更新的步调,换成隔几天发一篇的步调(但是这个系列的文章一定会写完的!)2、Buffer Pool、LRU List、Flush List、Free List相辅相成,建议放在一起串讲。说的没错,是应该一起串讲。于是有了这篇加餐的文章:下面让我们就一起看下,当你执行CURD时,InnoDB的Buffer Pool中都发生了什么!以及Buf

2020-12-13 13:59:54 209

原创 一看就懂的MySQL的FreeList机制

Hi,大家好!我是白日梦!今天我要跟你分享的MySQL话题是:“了解InnoDB的FreeList吗?谈谈看!”本文是MySQL专题的第 7 篇,共110篇。一、回顾前面几篇文章白日梦和你分享了,我们从磁盘中读取出来的数据页以缓存页和描述信息的方式组织在Buffer Pool中。MySQL启动后,BufferPool就会被初始化,在你没有执行任何查询操作之前,BufferPool中的缓存页都是一块块空的内存,未被使用过也没有任何数据保存在里面。而且你也知道了通过缓冲页的描述信息可以直接且唯一的

2020-12-13 13:59:22 568 3

原创 你知道MySQL的LRU链表吗?

相信大家对LRU链表是不陌生的,算是一种基础的数据结构!LRU:Least Recently Used一、简述传统的LRU链表LRU:Least Recently Used相信大家对LRU链表是不陌生的,它算是一种基础的数据结构吧,而且想必面试时也被问到过什么是LRU链表,甚至是让你手写一个LRU链表。如果你读了上一篇:你有没有搞混查询缓存和BufferPool?谈谈看!想必你已经知道了MySQL的Buffer Pool机制以及MySQL组织数据的最小单位是数据页。并且你也知道了 数据页在Bu

2020-12-13 13:58:37 212

原创 面试题:你有没有搞混查询缓存和Buffer Pool?谈谈看!

首发地址:点击跳转阅读原文,有更好的阅读体验使用推荐阅读,有更好的阅读体验!一、Caches - 查询缓存下图是MySQL官网给出的:MySQL架构体系图。人们常说的查询缓存就是下图中的Cache部分。如果将MySQL分成 Server层和存储引擎层两大部分,那么Caches位于Server层。另外你还得知道:当一个SQL打向MySQL Server之后,MySQL Server首选会从查询缓存中查看是否曾经执行过这个SQL,如果曾经执行过的话,之前执行的查询结果会以Key-Value的

2020-12-13 13:57:57 408 1

原创 面试题:能谈谈Date、Datetime、Time、Timestamp、year的区别吗?

一、 推荐阅读首发地址:https://mp.weixin.qq.com/s/9zKX86P4kzlKla6-NyS3EA使用推荐阅读,有更好的阅读体验二、准备如果面试官问你:了解 date、datetime、time、timestamp、year 有什么区别吗?其实大概率就是看你曾经用过哪些,以及有没有留心对比它们的异同。如果你没有时间去做一下小实验,没关系!大概浏览一下我下面的小Case就OK了。创建下面这张表,下面的 insert sql 都是往这个表中插入数据。三、Year支持

2020-12-13 13:56:45 267 1

原创 面试题:对NotNull字段插入Null值 有啥现象?

Hi,大家好!我是白日梦。今天我要跟你分享的话题是:“对NotNull字段插入Null值有啥现象?”一、 推荐阅读首发地址:https://mp.weixin.qq.com/s/b30fKiQJTZARZazQdv6WKw使用推荐阅读,有更好的阅读体验,公众号首发!分享不易,欢迎关注~二、从一个实验开始首先创建数据表id为not null类型,我们像下面这样插入。所以说默认情况下,如果该列要求不能为null。用户还往里面写入null,就会报错:cannot be null当然本篇文

2020-12-13 13:55:58 301

原创 面试官:聊聊MySQL的慢查询、如何监控、如何排查?

Hi,大家好!我是白日梦。今天我要跟你分享的话题是:“聊聊什么是慢查、如何监控?如何排查?”一、 推荐阅读方式点击查看原文使用推荐阅读,有更好的阅读体验二、什么是慢查?慢查,顾名思义就是很慢的查询。SQL的执行总是有一个执行时间的,通过long_query_time参数告诉MySQL,当SQL的执行时间超过该参数的指定值后就将这条SQL记录在慢查日志中。默认的long_query_time默认值为10s三、怎么调整界定慢查的时间?设置全局慢查时间为0.2秒。注意:long_

2020-12-13 13:43:46 730

原创 保姆级别的RabbitMQ教程!从零开始!一看就会!

文章目录什么是AMQP 和 JMS?常见的MQ产品安装RabbitMQ启动RabbitMQ什么是Authentication(认证)指定RabbitMQ的启动配置文件如何让guest用户远程登陆RabbitMQ管理用户和权限RabbitMQ中的概念什么是virtual host创建virtual host 并指定用户可以使用它RabbitMQ的五种消息模型Hello WorldWorker模型订阅模型订阅之Fanout模型订阅之Direct模型订阅之Topic模型Hello WorldWorker模型订阅模

2020-12-06 16:42:15 1198

原创 面试题:谈谈MySQL的基数统计

Hi,大家好!我是白日梦。今天我要跟你分享的话题是:“大家常说的基数是什么?”推荐阅读方式首发地址:https://mp.weixin.qq.com/s/FgxwAFQbEjv5i-TxjvLK6Q使用推荐阅读,有更好的阅读体验一、基数是啥?Cardinality指的就是MySQL表中某一列的不同值的数量。如果这一类是唯一索引,那基数 = 行数。如果这一列是sex,枚举类型只有男女,那它是基数就是2Cardinality越高,列就越有成为索引的价值。MySQL执行计划也会基于Ca

2020-11-11 07:26:42 174

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除