/images/wb.png

怕什么真理无穷,进一寸有一寸的欢喜

MySQL 常见问题(二)

索引数据结构为什么不使用红黑树或B树在 InnoDB 引擎中,索引的底层数据结构是 B+ 树。MySQL 的数据是存储在硬盘的,在查询时一般是不能「一次性」把全部数据加载到内存中。红黑树是「二叉查找树」的变种,一个 Node 节点只

MySQL 为什么使用 B+ 树索引

前言为什么 MySQL 采用 B+ 树作为索引? 如果纯粹的猜测 MySQL 数据库索引为什么使用 B+ 树?那么围绕这个问题的回答通常一定是围绕 B+ 树本身是什么,有什么优势这两点去解释这个问题。 这不是我开始这么去想的,看了很多文章都是从这

Chrome 浏览器使用备忘

Volume Control刚在使用蓝牙时,发现一看视频,电脑左上角屏幕就出现了音量块,类似这样: voice 解决方式可以参考: How to Enable or Disable Chrome Volume Control and Hardware Media Key Handling

mysql workbench 查看触发器

mysql workbench 是官方推荐的数据库工具,用了很长时间却一直不知道触发器在哪儿😢。 触发器是对单个表的操作,而不是整个数据库的操作,所以 Alter Table 就可以看到触发器: 图1 图2 点这个扳手图标也可以看到触发器,跟

Redis 缓存击穿、缓存穿透、缓存雪崩

缓存击穿高并发流量,访问的这个数据是热点数据,请求的数据在 DB 中存在,但是 Redis 存的那一份已经过期,后端需要从 DB 从加载数据并写到 Redis。 总结起来就是:单一热点数据、高并发、数据失效。 缓存击穿 解决方案 过期

Go GC 垃圾回收

垃圾回收(Garbage Collection,GC)是编程语言中提供的自动的内存管理机制,自动释放不需要的内存对象,让出存储器资源。GC 过程中无需程序员手动执行。 GC 机制在现代很多编程语言都支持,GC 能

Gitalk 初始化 issue

在用 Gitalk 作为个人博客评论系统时,发现有个恶心的点是,每篇文章必须手动初始化一个 issue 或是登录 github 后,把文章一个一个点开界面去初始化 issue,不然就会出现以下的提示 no issus 个人觉得这件事情非常麻烦,Gitalk 使

hugo algolia Unreachable hosts

最近在使用 hugo algolia 时,在 github actions 同步索引到 algolia 时总是出现这样的错误: action error list Unreachable hosts 我用的 action 插件是Algolia Index Uploader,找了半天发现是参数 algolia_index_id 写的有问题😥: algolia_index_id 填的值 上传成功后可以去 algolia 官网查看

互联网协议简述

概述 五层模型互联网的实现,分成好几层。每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。 用户接触到的,只是最上面的一层,根本没有感觉到下面的层。理解互联网,需要从最下层开始,自下而上理解每一

OAuth2.0的理解与应用

什么是 OAuth2.0OAuth 的核心就是向第三方应用颁发令牌,比如网站 A 想用 Github 的信息,那么对于 Github 来说,网站 A 就是第三方应用。 第三方应用申请令牌之前,都必须先到系统备案,比如申请 Github 的令牌,得先到github备案登记, 说明自己

hugo主题标题支持emoji:smile:

解决方法hugo 在渲染时默认是不支持标题中的emoji的(有的主题也许是支持的),可以通过修改主题源码来支持。 我用的主题是LoveIt,找到 simple.html 文件,路径为 themes/LoveIt/layouts/posts/single.html 修改标题的渲染方式为 {{ .Title | emojify }},如下: 这样

TCP和UDP连接管理

TCP 协议和 UDP 协议都是工作在传输层,是为了在程序之间传递数据,数据可以是多种形式,比如视频,文本,图片等。对于 TCP 协议和 UDP 协议来说,都是一堆二进制数,只是 TCP 基于连接,而 UDP 基于非连接。 名词解释 名词 解释 SYN 同步序

JS运行机制

执行模式JS的执行模式是单线程的,当有多个任务时必须排队执行,优点是执行环境简单,缺点是性能低下,当有多个任务时,需要等待上一个任务执行完成才能执行下一个任务, 如果某个任务出现了死循环,那么就会导致程

Go GMP 调度模型

进程、线程、协程的区别进程:进程是操作系统为应用程序分配资源的最小单元。每个进程有独立的内存空间和状态。 线程:线程是进程中的一个独立执行单元。在 Go 中,一个进程可以启动多个线程,以并行执行任务。 协程:协

Go 常用命令

常用编译参数 参数 说明 -o 指定输出可执行文件名 -v 编译时显示包名,可以理解成输出详细编译信息 -u 不加-u标记,执行 go get 一个已有的代码包,会发现命令什么都不执行。加了-u才会去拉取最新的代码包的最新版本 -race 开启竞

JavaScript heap out of memory

刚在打包项目时执行 yarn run build 时出现了 oom 的情况,具体报错信息如下: 我的环境是 win10 专业版 WSL。 解决办法,设置 export NODE_OPTIONS=--max_old_space_size=4096,设置完之后重新执行 yarn

将google浏览器插件下载到本地

国内的网络太复杂了,在不能访问 google 的情况下,甚至都不能打开网上应用商店,所以我们需要一个方便的方式来下载google浏览器插件并分享 给需要的小伙伴。 我们打开任意一个浏览器插件,如: URL 地址栏中有一串字符串