0%

昨天在复习 MySQL 日志相关的知识,学的东西过一段时间后就会遗忘,遗忘后再重新思考,往往会有新的收获。想到几个问题,把它记录下来。

为什么 redo log 具有 crash-safe 的能力,而 binlog 没有?

redo log 是什么?

一个固定大小,“循环写”的日志文件,记录的是物理日志——“在某个数据页上做了某个修改”。

binlog 是什么?

一个无限大小,“追加写”的日志文件,记录的是逻辑日志——“给 ID=2 这一行的 c 字段加1”。

redo log 和 binlog 有一个很大的区别就是,一个是循环写,一个是追加写。也就是说 redo log 只会记录未刷盘的日志,已经刷入磁盘的数据都会从 redo log 这个有限大小的日志文件里删除。binlog 是追加日志,保存的是全量的日志。

当数据库 crash 后,想要恢复未刷盘但已经写入 redo log 和 binlog 的数据到内存时,binlog 是无法恢复的。虽然 binlog 拥有全量的日志,但没有一个标志让 innoDB 判断哪些数据已经刷盘,哪些数据还没有。

Read more »

自从开始早起,每天一杯咖啡就成了标配,在我的另一篇文章《咖啡+奶》中聊过,从一开始的3+1速溶进阶到黑咖啡+鲜牛奶,这次我的咖啡体验又升级啦。入了一台胶囊咖啡机 Nespresso Inissia C40,爱喝咖啡星人终于有了一台属于自己的咖啡机啦。

Read more »

左耳听风《高效学习篇》笔记

端正学习态度

学习所需要具备的能力:

  1. 行动力:缺乏行动力的人只会嘴上说说,很少真实践行;
  2. 方向和目标:要在前进过程不断修正自己的方向,确立和实现自己的目标;
  3. 方法:学习的方法很重要,没有方法论的支持,可能耗费大量的时间却收获很少;
  4. 自律和坚持:严格的自律,坚持,有效学习不使蛮力,可持续发展。
Read more »

WordPress 原生的页面导航不好用,我们可以利用插件改成分页导航。

我们使用 WP-PageNavi 插件来替代原生的页面导航。

安装结束后进入主题编辑器,找到首页 index.php,找到 navigation 或者 nav 相关的代码,注释掉相关代码,并在位置上添加如下代码:

<?php wp_pagenavi(); ?>

Read more »

WordPress 自带的代码块是没有代码高亮的,我们可以通过安装插件,设置代码高亮。

因为都是使用 Markdown 写博客,再用 MWeb 发布到博客上,Enlighter 这种需要依赖谷腾堡编辑器插入额外模块的插件,就不太适合我了,虽然这个插件很强大,有兴趣的朋友可以尝试下。

Enlighter

我只能选择自动美化谷腾堡代码块的插件,我找到了 Code Prettify 这个简单的插件,直接安装,不需要额外的配置,就能自动渲染代码块,目前我还是挺满意的,简单方便。大家要是有更好用的插件,也可以在评论区告诉我。

效果如下:

Read more »

显示文章的阅读次数对 SEO 是有很大好处的,因为每次点击都会对文章进行一次小小的更新,我们可以用 WP-PostViews 这个插件来实现这个功能。

安装插件

在博客后台安装 WP-PostViews 插件。

修改主题代码

方法一:简单的修改。

  1. 在外观 -> 主题编辑器 中,找到 index.php
  2. 找到 <?php while (have_posts()) : the_post(); ?> 这行代码
  3. 在循环内添加代码 <?php if(function_exists('the_views')) { the_views(); } ?>

这样就可以在首页添加一个默认样式,简易的阅读计数。

Read more »

题目

实现 pow(x, n) ,即计算 x 的 n 次幂函数。

示例 1:

输入: 2.00000, 10
输出: 1024.00000
示例 2:

输入: 2.10000, 3
输出: 9.26100
示例 3:

输入: 2.00000, -2
输出: 0.25000
解释: 2-2 = 1/22 = 1/4 = 0.25
说明:

-100.0 < x < 100.0
n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。

Read more »

235.二叉搜索树的最近公共祖先

题目

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”

例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]

示例 1:

输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8
输出: 6
解释: 节点 2 和节点 8 的最近公共祖先是 6。
示例 2:

输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4
输出: 2
解释: 节点 2 和节点 4 的最近公共祖先是 2, 因为根据定义最近公共祖先节点可以为节点本身。

说明:

所有节点的值都是唯一的。
p、q 为不同节点且均存在于给定的二叉搜索树中。

Read more »

题目

给定一个二叉树,判断其是否是一个有效的二叉搜索树。

假设一个二叉搜索树具有如下特征:

节点的左子树只包含小于当前节点的数。
节点的右子树只包含大于当前节点的数。
所有左子树和右子树自身必须也是二叉搜索树。
示例 1:

1
2
3
4
5
输入:
2
/ \
1 3
输出: true

示例 2:
1
2
3
4
5
6
7
8
9
输入:
5
/ \
1 4
/ \
3 6
输出: false
解释: 输入为: [5,1,4,null,null,3,6]。
根节点的值为 5 ,但是其右子节点值为 4 。

Read more »

速溶咖啡

起初,刚开始尝试早起,天刚蒙蒙亮,困意十足。起床第一件事,先烧一壶水,冲一杯速溶咖啡。冬天的早晨,一杯甜甜腻腻的咖啡下肚,清醒。

Read more »