MySQL 面试常见问题

一、索引B+ Tree原理1.数据结构B Tree 指的是 Balance Tree(平衡树),平衡树是一颗查找树,并且所有叶子节点位于同一层。B+ Tree是基于B Tree和叶子节点顺序访问指针进行实现,它具有B Tree的平衡性,并且通过顺序访问指针来提高区间查询的性能。 2.操作进行查找操作时,在根节点进...

缓存 Redis 常见问题

为什么使用缓存?因为传统的关系型数据库已经不能适应所有的场景了,如秒杀,当访问流量达到高峰时,不使用缓存中间件,那么流量会打入数据库,很容易打崩数据库,所以这种的场景下需要引入缓存中间件;因为缓存中间件如Redis为内存型缓存中间件,单线程,处理速度比MySQL快几十倍甚至上百倍,所以常用的数据或者临时数据都可以...

遇到 DDOS

参考链接:阮一峰日志,Nginx 限制某一ip的访问频率 在帮同事做一个小程序后端项目,因为有些许的流量,或者其他种种原因,被别人发起了 DDOS,所以想着把处理过程记录下来。 DDOS 是什么首先还是先介绍一下 DDOS 吧,在维基百科中这样介绍:拒绝服务攻击(denial-of-service attack)...

Gin 中模型验证 validator.v9

Gin 默认的模型验证为 validator 库,并且提供了多个版本供我们使用,如 v8,v9,我自己在使用的时候我会默认使用 v9 这个版本,因为在写自定义验证函数时更方便简洁。 v8 版本的自定义验证123456789101112func ValidateUserNameUniq( v *validator....

MySQL运行原理【数据页】

文章根据《MySQL技术内幕:InnoDB存储引擎(第二版)》、掘金小册《MySQL是怎样运行的:从根儿上理解MySQL》 两本书得到的总结 文章参考 淘宝数据库内核组月报 文章中的图均截自《MySQL技术内幕:InnoDB存储引擎(第二版)》 概述之前在介绍表的那篇文章里,简单的介绍到...

MySQL运行原理【事务】

文章根据《MySQL技术内幕:InnoDB存储引擎(第二版)》、掘金小册《MySQL是怎样运行的:从根儿上理解MySQL》 两本书得到的总结 事务概述在现实生活中,大家都有过以下经历(也是事务的经典场景之一): 最近没钱了,需要去银行取些钱用,然后就去ATM机取钱 在ATM机取 100 块钱 银行程序会在将...

MySQL运行原理【表】

文章根据《MySQL技术内幕:InnoDB存储引擎(第二版)》、掘金小册《MySQL是怎样运行的:从根儿上理解MySQL》 两本书得到的总结 文章图片均截图自《MySQL技术内幕:InnoDB存储引擎(第二版)》 本篇文章将介绍MySQL表的逻辑存储及实现,也就是数据在表中如果组织和存放的。 表的概述表就...

众多编程语言应如何选择

开始我相信在刚学编程,或学了有一段时间(1-2年)的程序猿,大多都考虑过,应该选择哪门编程语言作为主要开发语言,我同众多程序猿一样,在大二的时候选择了 PHP 这门后端编程语言,当时没有考虑很多,因为工作室里以 PHP 为主,根本没有考虑到选择哪个编程语言,当然,我之前已经学了 C 我为啥没有选择 C 作为开发语...

使用 Hexo + GitHub 搭建个人博客

前言之前一直用的是 WordPress + 阿里云 来搭建个人博客,因为自己的服务器配置处于乞丐版,当然用于搭建个人博客是完全够了,因为也没有推广自己的博客,所以流量几乎没有,大部分都是爬虫访问😅,还有个重要的原因是阿里云服务器是学生优惠买的,若到期了就没办法继续使用了,所以一直有将个人博客搭建在 Github...

【外文翻译】使用 Laravel 时的一些小技巧

译文地址第一次翻译文章,如有翻译不好的地方还请大家指出,大家也可以直接看原文。 01: 触发父级的时间戳如标题所示,在子模型更新时,可以触发父模型的时间戳。例如 Comment 属于 Post,有时更新子模型导致更新父模型时间戳非常有用。例如,当 Comment 模型被更新时,您要自动触发父级 Post 模型...