目录 一.事物的隔离级别与MVCC? 二.Repeatable Read是如何实现的 本文是MySQL专题第15篇,全文近100篇(公众号首发) 三.Read Commited是如何实现的: 本文是MySQL专题第15篇,全文近100篇(公众号首发) Hi,大家好!我是白日梦. 今天我要跟你分享的话题是:"MySQL是如何根据undo log 链条实现read view机制的?谈谈看" 一.事物的隔离级别与MVCC? MySQL单进程多线程的数据库软件,在事务的并发操作中可能会出现脏读…
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 前言 耗子喂汁是什么意思什么梗呢?可能很多人不知道,这个梗是出自马保国,经常上网的人可能听说过这个名字,而他所说的一些话也被当成了一些梗,比如年轻人不讲武德,闪电五连鞭等等 B站马保国的一段视频中他右眼红肿金句频出,部分经典句式甚至被网友们总结归纳成了"保国体",变成了口头禅,比如"年轻人不讲武德,欺侮我六十九岁的老同志""耗子尾汁"(好自为之)…
首先,开局一张图,嘉立创又不做人的一天.嘉立创不讲武德,耗子尾汁!!! 之前下单,勾选了确定生产稿和不加客编,结果生产稿出来还是给我加了客编.那我出10元的意思何在?让我自己花3元看我花的10元有没有奏效? 这次4单板子,11月19 17:39:37下单,11月19 17:53:56付款,想着你慢慢弄,我明天上午再确认生产稿.结果自己一开电脑,你直接给我确认生产稿了???这是什么操作,等于说我4笔订单的3元确定生产稿一共12元白出了??我不确定生产稿,影响生产进度是我的责任,你自动给我确认算什么…
hello,大家好,我是小黑,又和大家见面啦~~ 如果你去某度搜索关键词 CommandLineRunner 初始化资源 ,截止小黑同学写这篇推文之前,大概能收到 1,030,000 个结果. 网上大部分的文章都在告诉我们说可以使用 CommandLineRunner 去初始化资源,但几乎很少有文章告诉我们:如果 CommandLineRunner 使用不当,就会导致程序出现一些奇怪的异常,更有可能导致我们的应用直接停止运行. 正在读这篇文章的你如果也使用了 CommandLineRunner…
今天来分享几个MySQL常见的SQL错误(不当)用法.我们在作为一个初学者时,很有可能自己在写SQL时也没有注意到这些问题,导致写出来的SQL语句效率低下,所以我们也可以自省自检一下. 1. LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如对于下面简单的语句,一般DBA想到的办法是在type, name, create_time字段上加组合索引.这样条件排序都能有效的利用到索引,性能迅速提升. SELECT * FROM operation WHERE type…
朋友们好啊,我是码农小胖哥. 今天有个同学问我在吗,我说什么事? 给我发个截图,我一看!噢,原来是帮忙搞个定时任务,还是动态的. 他说了两种选择,一种是用DelayQueue,一种是用消息队列. 他说,胖哥你能不能教我点招式混元功法,帮我完成这个需求. 我说可以! 我说你这两种都不好用,他不服气. 我说那你写个DelayQueue来看看,他写不出来. 他说你这估计也不会,我说我确实不会. 这是 JUC,传统底层开发是要讲基础的,必须融会贯通,我只会调包. 这种定时任务我用 Redis 更简单些.…
Hello,早上好,我是楼下小黑哥~ 最近偶然间在看到 Spring 官方文档的时候,新学到一个注解 @ControllerAdvice,并且成功使用这个注解重构我们项目的对外 API 接口,去除繁琐的重复代码,使其开发更加优雅. 展示具体重构代码之前,我们先来看下原先对外 API 接口是如何开发的. 这个 API 接口主要是用来与我们 APP 交互,这个过程我们统一定义一个交互协议,APP 端与后台 API 接口统一都使用 JSON 格式. 另外后台 API 接口对 APP 返回时,统一一些错…
目录 一.引出 redo log 的作用 二.思考一个问题: 三.redo log block 四.redo log buffer 五.redo log的刷盘时机 六.推荐参数 七.redo log group 推荐阅读 白日梦感觉作为研发同学的你可能真的没必要了解摸清楚关于redo log的这些机制.专注于写SQL完全能hold住日常的工作. 但是呢,感觉最好还是要了解一下,因为一般面试官都知道redo log是咋回事,其次是大家茶前饭后唠嗑时也能多少能插几句嘴. 文章公号 首发!连载中!关注…
目录 回顾 思考一个问题 checkponit机制 Checkpoint的种类及触发条件 LSN 推荐阅读 本文稍微有点晦涩.但是看过之后你就能Get到MySQL的崩溃恢复到底是怎么做的! 文章公号 首发!连载中!关注微信公号回复:"抽奖" 还可参加抽活动 回顾 在这篇文章之前,白日梦跟你分享了什么是redo log.以及redo log的作用.redo log的刷盘机制等知识点.简单来说就是redo log是MySQL的事物日志.比如你执行一条update语句,在你提交事物之前MyS…
目录 一.唠嗑 二.什么是bin log? 三.它在哪里? 四.bin log的相关配置 五.binlog 有啥用? 六.超有用的参数 sql_log_bin 七.未来几篇文章 推荐阅读 一.唠嗑 文章公号 首发!连载中!关注微信公号回复:"抽奖" 还可参加抽活动 算上这一篇文章,白日梦的MySQL专题已经写了18篇了.前面的文章中有跟大家分享过undo log.redo log.以及接下来要有几篇文章跟大家分享bin log. 前一阵跟一个同学唠嗑,说到了MySQL的这几个日志.那同…
目录 一.binlog 的高速缓存 二.刷盘机制 三.推荐的策略 推荐阅读 问个问题吧!为什么你需要了解binlog的落盘机制呢? 我来回答一下: ​ 上一篇文章提到了生产环境中你可以使用binlog做数据的恢复.审计.以及搭建主从架构的MySQL集群.那你使用这些特性优势的时候有没有问自己一下,你使用的binlog是安全的吗?会不会少记录了一部分数据呢?因为使用一个有问题的binlog去做数据恢复.审计.搭建主从MySQL集群的结果肯定是错误的! ​ 下面,我们一起来看一下MySQL执行事物的…
目录 因为我个人比较喜欢看修仙类的小说,所以本文的主体部分借用修仙者的修为等级,将学习旅程划分成:练气.筑基.结丹.元婴.化神.飞升六个段位,你可以看下你大概在哪个段位上哦! 本文目录: 我为什么要写这篇文章 都这么卷了,是时候好好学MySQL了! 勾勒脑图 练气期 筑基期 结丹期 元婴期 化神期 飞升 联系我 be friends 我为什么要写这篇文章 首先我做一下自己介绍: 大家好,我是白日梦. 大三上学期末尾我尝试投递简历,当时很幸运拿到了度小满金融的offer,今年也就是2021年的3月…
目录 一.吹个牛 二.事务及它的特性 三.简单看下两阶段提交的流程 四.两阶段写日志用意? 五.加餐:sync_binlog = 1 问题 六.如何判断binlog和redolog是否达成了一致 七.两阶段提交设计的初衷 - 分布式事务 八.再看MySQL两阶段写日志 九.留一个彩蛋 十.推荐阅读(公众号首发,欢迎关注白日梦) 一.吹个牛 面试官的一句:"了解MySQL的两阶段提交吗?" 不知道问凉了多少人! 这篇文章白日梦就和大家分享什么是MySQL的两阶提交到底是怎么回事!不管你原…
目录 一.导读 1.1.认识ES 1.2.安装.启动ES.Kibana.IK分词器 二.核心概念 2.1.Near Realtime (NRT) 2.2.Cluster 2.3.Node 2.4.Index 2.5.Type 2.6.Document 2.7.一个不严谨的小结: 2.8.Shards & Replicas 2.8.1.问题引入: 2.8.2.什么是shard? 2.8.3.shard的默认数量 2.8.4.如何拓容Cluster 2.8.5.举个例子: 三.入门探索: 3.1.集…
目录 一.导读 三._search api 搜索api 3.1.什么是query string search? 3.2.什么是query dsl? 3.3.干货!32个查询案例! 四.聚合分析 4.1.什么是聚合分析? 4.2.干货!15个聚合分析案例 五.7个查询优化技巧 推荐阅读 一.导读 Hi!大家久等了!时隔10天,白日梦的Elasticsearch笔记进阶篇终于甘完了!本次更新依然是干货满满! 下面会和大家分享 32种查询方法.15中聚合方式.7种优化后的查询技巧.欢迎大家转发支持!…
导读 Hi,大家好!我是白日梦!本文是MySQL专题的第 24 篇. 今天我要跟你分享的MySQL话题是:"自导自演的数据库面试现场--谈谈MySQL的10种文件" 换一种写作风格,自导自演面试现场!感觉这样还是比较有趣的,欢迎大家订阅我的MySQL专题,公众号首发!持续更新中- 点击阅读原文,格式会好看一点哦- 欢迎关注白日梦,公众号首发!持续连载中 1 好!我们开始吧!                                 你好,看你简历中有写熟悉MySQL数据库啊.要不…
导读 Hi,大家好!我是白日梦!本文是MySQL专题的第 24 篇. 今天我要跟你分享的MySQL话题是:"从一条update sql执行都经历什么开始,发散开一系列的问题,看看你能抗到第几问吧" 换一种写作风格,自导自演面试现场!感觉这样还是比较有趣的,欢迎大家订阅我的MySQL专题,公众号首发!持续更新中- 点击阅读原文,格式会好看一点哦- 点击阅读原文,格式会好看一点哦- 点击阅读原文,格式会好看一点哦- 欢迎关注白日梦,公众号首发!持续连载中 1 好!我们开始吧!       …
Hi,大家好!我是白日梦!本文是MySQL专题的第 26 篇. 下文还是白日梦以自导自演的方式,围绕"说说char 和 varchar的区别你了解多少?"展开本话题.看看你能抗到第几问吧 换一种写作风格,自导自演面试现场!感觉这样还是比较有趣的,欢迎大家订阅我的MySQL专题,公众号首发!持续更新中- 点击阅读原文,格式会好看一点哦- 点击阅读原文,格式会好看一点哦- 点击阅读原文,格式会好看一点哦- 欢迎关注白日梦,公众号首发!持续连载中 Hi同学,听说你上一面表现的还可以,这一面要…
目录 一.前言 二.问题引入 2.1.聚簇索引 2.2.普通索引 三.change buffer存在的意义 四.再看change buffer 五.change buffer 的限制 六.change buffer 相关参数 七.查看你的MySQL的change buffer 八.灵魂拷问 九.参考 十.推荐阅读 一.前言 终于<为研发同学同学定制的MySQL面试指南>第30篇更新来啦- 说来话长,都说Baidu是养老厂,结果偏偏干出了pdd的感觉.最近工作确实比较忙,然后周六日又想放松一下接…
目录 问题引入- 断电了 不一会 - 来电了 Double write工作流程 恢复的过程 配置参数 疑问 推荐阅读 问题引入- 断电了 今天为大家介绍一个新的名词:double write. 相信你还记得,我之前有写笔记跟大家分享过,在MySQL组织数据的基本单位是存在于磁盘上的数据页.数据页被读取到内存(Buffer Pool)中后被称为缓存页.默认情况下每个数据页的大小是16kb,数据页中存储的就是一行行真实的记录,也叫做数据行. mysql> SHOW GLOBAL VARIABLES…
阅读原文 系列文章公众号首发,点击阅读原文 前置知识 我们想登陆到mysql中前提是肯定需要一个用户名和密码:比如 mysql -uroot -proot 在mysql中用户的信息会存放在 mysql数据库下的 user表中 可以像下面这样查看到所有用户信息 mysql> use mysql Database changed mysql> select * from user\G *************************** 1. row **********************…
这一篇笔记我们简述一下 MySQL的B+Tree索引到底是咋回事? 聚簇索引索引到底是如何长高的. 一点一点看,其实蛮好理解的. 如果你看过了我之前的笔记,你肯定知道了MySQL进行CRUD是在内存中进行的,也就是在Buffer Pool中.然后你也知道了当内存中没有MySQL需要的数据时,MySQL会从Disk中通过IO操作将数据读入内存中.读取的单位呢就是:数据页 一般数据页长下面这样 没错,数据页中存储着真实的数据,而且数据页在内存中是以双向联表的方式组织起来的!如下图 而在B+Tree的…
目录 公众号首发-推荐阅读原文-格式更好看 一.导读 二.聚簇索引 三.二级索引 四.联合索引 4.1.什么是联合索引 4.2.左前缀原则 4.3.联合索引的分组&排序 五.覆盖索引 六.倒排索引 公众号首发-推荐阅读原文-格式更好看 点击阅读原文 点击阅读原文 点击阅读原文 一.导读 在MySQL中,不仅为主键创建的聚簇索引选用的数据结构是B+Tree,像辅助索引,二级索引.覆盖索引.联合索引等等其实都是B+Tree. 二.聚簇索引 MySQL默认为 int 类型的主键创建一个聚簇索引.这棵B…
一.描述 晚上刚洗漱完之后听同学说:B站挂了?woc?真挂了? 嗯!确实挂了,404的状态码,懂的都懂. 不过,最下面的tengine字眼吸引了我的注意,一时兴起,打算看看它是个什么东西,起码搞一个hello world出来,所以特意去购买了一台服务器,打算搞一个hello tengine 服务器就位,准备开干! 二.官方的介绍 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如…
MySQL的修仙之路,图文谈谈如何学MySQL.如何进阶!(已发布) 面前突击!33道数据库高频面试题,你值得拥有!(已发布) 大家常说的基数是什么?(已发布) 讲讲什么是慢查!如何监控?如何排查?(已发布) 对NotNull字段插入Null值有啥现象?(已发布) 能谈谈 date.datetime.time.timestamp.year的区别吗?(已发布) 了解数据库的查询缓存和BufferPool吗?谈谈看!(已发布) 你知道数据库缓冲池中的LRU-List吗?(已发布) 谈谈数据库缓冲池中…
目录 你我都有的需求 方式一:tee 方式二:mysql_use_result 推荐阅读 一.给研发同学看的面试指南 二.MySQL-视频 三.进阶MySQL中间件-视频 四.白日梦的云原生-笔记 五.白日梦的云原生-视频 你我都有的需求 日常的工作中难免有需求分析想把数据库中的数据导出来分析,注意只是将数据导出来,而不是(dump)备份数据库 那本文就跟大家介绍我常用的两种方式,如下: 方式一:tee tee的功能是把你与MySQL-Server之间的交互记录都记录到你指定的文件中去. 看下的…
这是why哥的第 75 篇原创文章 从Dubbo的优雅停机说起 好吧,其实本文并不是讲 Dubbo 的优雅停机的. 只是我在 Dubbo 停机方法 DubboShutdownHook 类中,看到了这样的一段代码: 很明显,这个地方最关键的地方是红框框起来的部分. 而这个 addShutdownHook 其实是 JDK 的方法: java.lang.Runtime#addShutdownHook 最终,把传进来的 hook 放到了 hooks 里面. 你说 hooks 是这个什么玩意? 这个 ho…
分析: 程序中包括打印机(Printer).墨盒(Ink).和纸张(Paper).三类组件 首先创建一个新项目文件Spring_Box 我们来定义墨盒和纸张的接口类 墨盒接口Ink.java文件内容如下: package entiey; public interface Ink { /** * 定义打印采用的颜色的方法 * r(红色) * g(绿色) * b(蓝色) */ public String getColor(int r,int g,int b); } 纸张接口Paper.java文件内…
@ 目录 这篇文章教会Git 1. Git是什么? 1.1 发展历程 1.2 Git是什么? 1.3 Git和SVN 2.Git有什么用? 2.1 代码合并 2.2 代码备份 2.3 代码还原 2.4 问题追溯 3. Git的使用(重点) 3.1 下载 3.2 创建版本库 3.3 如何把文件添加到版本库中 3.4 查看文件状态 3.5 后悔药 3.6 深入剖析Git的工作 3.7 撤销修改文件 4.远程仓库 4.1 远程仓库介绍 4.2 码云的使用 4.2.1 官网地址: 4.2.2 注册账号…
小小面试一下 前言蜜语 最近马师傅火的不要不要的,虽然没有抢到耗子尾汁的商标注册权,但是必须得蹭一波马师傅的热度,下面就是闪电五连鞭的教学环节,你准备好了吗! 在正式内容开始前先甩两篇关于类加载机制和内存布局的文章,因为今天的内容多少与这两篇文章有直接的联系,对这方面还比较薄弱的朋友可以先看看,地址我放在下面. jvm┃java内存区域,跳槽大厂必会知识点! moon不讲武德!!!一个类加载机制给面试官说蒙了!! 今天本文的内容就针对刚刚模拟面试两个问题 1.对象的创建过程 2.对象的内存布局…