MySQL
文章平均质量分 81
赐我白日梦
我是白日梦
展开
-
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 · 715 阅读 · 0 评论 -
后端如何存储表情包?
前几天项目需要后端支持存储输入法中的表情包,一开始以为挺复杂,结果大意了。站在巨人的肩膀上让后端支持存储表情包简单的很。数据流很简单如下:所以与其说是让后端支持存储表情包,倒不如说成是让MySQL支持存储表情包。而且像123、abc这种字符串也好,或者是123这种数字也好,亦或是表情包也罢,他们其实都有自己对应的编码格式、或者是编码表。就好比ASCII编码表中包含了a、b、c...z 等如下:ACSII表中的符号占一个字符,对欧美佬来说,ACSII表中的符号可能以及基本够用了,但是对亚太地区原创 2021-09-20 10:32:01 · 314 阅读 · 0 评论 -
面试官狂问我各种锁怎么办?愣着干嘛?进来白嫖啊!
原创 2021-08-02 13:56:40 · 126 阅读 · 0 评论 -
面试被问如何排查慢查询(执行计划)怎么办?愣着干嘛?进来白嫖呀!
[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 · 212 阅读 · 0 评论 -
面试官:聊聊Double Write吧!
文章目录问题引入- 断电了不一会 - 来电了Double write工作流程恢复的过程配置参数疑问推荐阅读问题引入- 断电了今天为大家介绍一个新的名词:double write。相信你还记得,我之前有写笔记跟大家分享过,在MySQL组织数据的基本单位是存在于磁盘上的数据页。数据页被读取到内存(Buffer Pool)中后被称为缓存页。默认情况下每个数据页的大小是16kb,数据页中存储的就是一行行真实的记录,也叫做数据行。mysql> SHOW GLOBAL VARIABLES LIKE 'in原创 2021-05-08 15:08:35 · 214 阅读 · 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 · 1257 阅读 · 5 评论 -
全网最牛X的!!! MySQL两阶段提交串讲
文章目录一、吹个牛二、事务及它的特性三、简单看下两阶段提交的流程四、两阶段写日志用意?五、加餐:sync_binlog = 1 问题六、如何判断binlog和redolog是否达成了一致七、两阶段提交设计的初衷 - 分布式事务八、再看MySQL两阶段写日志九、留一个彩蛋十、推荐阅读(公众号首发,欢迎关注白日梦)一、吹个牛面试官的一句:“了解MySQL的两阶段提交吗?” 不知道问凉了多少人!这篇文章白日梦就和大家分享什么是MySQL的两阶提交到底是怎么回事!不管你原来晓不晓得两阶段提交,相信我!这篇文原创 2021-01-10 14:59:57 · 623 阅读 · 0 评论 -
删库后!除了跑路还能干什么?
文章目录前言数据备份有哪些种?实用的mysqldump备份方式得先知道什么是GTID看一条binlog长啥样数据恢复推荐阅读-白日梦的MySQL专题推荐阅读-二本应届生的大学生活,已上岸百度下一篇:两阶段提交和分布式事务前言Hi,欢迎订阅白日梦的MySQL专题!这篇文章我们一起闲聊,如果你不小心把MySQL中的数据删了,除了跑路还能干啥?看完本篇你将了解:常见的数据库备份方式、mysqldump实战、一条binlog长啥样、什么是gtid?什么是binlog位点?mysqlbinlog数据恢复实战原创 2021-01-09 16:00:44 · 177 阅读 · 0 评论 -
进军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 · 257 阅读 · 0 评论 -
百度实习生,以修仙者的角度聊聊怎么学MySQL,不来看看你的修为如何吗?
目录因为我个人比较喜欢看修仙类的小说,所以本文的主体部分借用修仙者的修为等级,将学习旅程划分成:练气、筑基、结丹、元婴、化神、飞升六个段位,你可以看下你大概在哪个段位上哦!本文目录:我为什么要写这篇文章都这么卷了,是时候好好学MySQL了!勾勒脑图练气期筑基期结丹期元婴期化神期飞升联系我 be friends我为什么要写这篇文章首先我做一下自己介绍:大家好,我是白日梦。大三上学期末尾我尝试投递简历,当时很幸运拿到了度小满金融的offer,今年也就是2021年的3月份入职原创 2020-12-21 09:55:35 · 141 阅读 · 0 评论 -
小白都能看懂的:MySQL数据页以及页分裂机制
文章公号 首发!连载中~ 欢迎各位大佬关注, 回复:“抽奖” 还可参加抽????活动文末有二维码一、知识回顾回顾一下之前和大家分享的知识点看了前面的文章,想必你肯定了解了什么是Buffer Pool、LRU-List、Free-List、Flush-List,你也知道了当MySQL增删改查时,内存中发生了什么,以及这几个双向链表是如何配合工作的。通过阅读上一篇文章你也一定了解了:你create出来的table其实是属于一个表空间的,而所谓的表空间其实对应着一个真实存在于物理磁盘上的文件。并且原创 2020-12-13 14:01:36 · 1204 阅读 · 0 评论 -
小白都能看懂的: MySQL的数据行、行溢出机制吗?
文章目录一、行 有哪些格式?二、紧凑的行格式长啥样?三、MySQL单行能存多大体量的数据?四、Compact格式是如何做到紧凑的?五、什么是行溢出?六、行 如何溢出?七、思考一个问题推荐阅读文章公号 首发!连载中!关注微信公号回复:“抽奖” 还可参加抽????活动在前面的文章中,白日梦曾不止一次的提及到:InnoDB从磁盘中读取数据的最小单位是数据页。而你想得到的id = xxx的数据,就是这个数据页众多行中的一行。这篇文章我们就一起来看一下数据行设计的多么巧妙。一、行 有哪些格式?你可以像原创 2020-12-13 14:01:02 · 160 阅读 · 0 评论 -
谈谈什么是MySQL的表空间?
今天我要跟你分享的话题是:“大家常说的表空间到底是什么?究竟什么又是数据表?”这其实是一个概念性的知识点,当作拓展知识。涉及到的概念大家了解一下就好,涉及的参数,留个印象就好。一、什么是表?但凡是用过MySQL都知道,直观上看,MySQL的数据都存在数据表中。比如一条Update SQL:update user set username = '白日梦' where id = 999;它将user这张数据表中id为1的记录的username列修改成了‘白日梦’这里的user其实就是数据表。当原创 2020-12-13 14:00:30 · 176 阅读 · 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 · 181 阅读 · 0 评论 -
一看就懂的MySQL的FreeList机制
Hi,大家好!我是白日梦!今天我要跟你分享的MySQL话题是:“了解InnoDB的FreeList吗?谈谈看!”本文是MySQL专题的第 7 篇,共110篇。一、回顾前面几篇文章白日梦和你分享了,我们从磁盘中读取出来的数据页以缓存页和描述信息的方式组织在Buffer Pool中。MySQL启动后,BufferPool就会被初始化,在你没有执行任何查询操作之前,BufferPool中的缓存页都是一块块空的内存,未被使用过也没有任何数据保存在里面。而且你也知道了通过缓冲页的描述信息可以直接且唯一的原创 2020-12-13 13:59:22 · 550 阅读 · 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 · 185 阅读 · 0 评论 -
面试题:能谈谈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 · 224 阅读 · 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 · 269 阅读 · 0 评论 -
面试官:聊聊MySQL的慢查询、如何监控、如何排查?
Hi,大家好!我是白日梦。今天我要跟你分享的话题是:“聊聊什么是慢查、如何监控?如何排查?”一、 推荐阅读方式点击查看原文使用推荐阅读,有更好的阅读体验二、什么是慢查?慢查,顾名思义就是很慢的查询。SQL的执行总是有一个执行时间的,通过long_query_time参数告诉MySQL,当SQL的执行时间超过该参数的指定值后就将这条SQL记录在慢查日志中。默认的long_query_time默认值为10s三、怎么调整界定慢查的时间?设置全局慢查时间为0.2秒。注意:long_原创 2020-12-13 13:43:46 · 690 阅读 · 0 评论 -
面试题:谈谈MySQL的基数统计
Hi,大家好!我是白日梦。今天我要跟你分享的话题是:“大家常说的基数是什么?”推荐阅读方式首发地址:https://mp.weixin.qq.com/s/FgxwAFQbEjv5i-TxjvLK6Q使用推荐阅读,有更好的阅读体验一、基数是啥?Cardinality指的就是MySQL表中某一列的不同值的数量。如果这一类是唯一索引,那基数 = 行数。如果这一列是sex,枚举类型只有男女,那它是基数就是2Cardinality越高,列就越有成为索引的价值。MySQL执行计划也会基于Ca原创 2020-11-11 07:26:42 · 159 阅读 · 0 评论