CPU 缓存一致性与内存屏障

在现代的 CPU(大多数)上,所有的内存访问都需要通过层层的缓存来进行,了解 CPU 缓存更新的一致性问题对我们设计与调试程序具有很大的帮助。这篇文章会介绍 CPU 的缓存系统,以及使用内存屏障进行缓存同步。

The Five-Minute Rule 30 年回顾

5分钟法则(The Five-Minute Rule)是用来衡量数据驻留在内存还是从磁盘进行访问的经验法则:在数据被读写之前必须被移动到主存的情况下,如果某项数据被访问频率的足够高,那么将它缓存在内存中比驻留在二级存储(磁盘)中更划算。

漫谈分布式共识算法与数据一致性

分布式系统中最重要的抽象之一就是共识:所有的节点就某一项提议达成一致。分布式系统中的一个或多个节点可以提议某些值,由共识算法来决定最终值,而共识的核心思想在于,决定一致的结果,并且一旦决定,就不能发生改变。本篇文章总结了常见的共识算法与分布式领域的一些理论,希望能获得较为全面的认知。

为什么 MySQL VARCHAR 小于 65535 · Why

CHAR 与 VARCHAR 是 MySQL 中常用的存储字符串的数据类型,在官方文档的介绍中 CHAR 类型的可定义最大长度为 255,而 VARCHAR 类型的最大长度为 65535,然而经过操作发现 VARCHAR 实际可创建的最大“长度”是一个不定值,这篇文章将会对这个问题进行分析。

关系型数据库索引设计原则

在关系型数据库系统中,不合适的索引是造成性能低下的最常见原因。普遍的情况包括没有足够多的索引、一些 SELECT 语句可能没有有效的索引、索引列的顺序不对等等。一些开发人员认为如果一个 SQL 语句使用了索引,那么这个语句得查询性能就会得到很大的提升,而且专业的索引设计应该由 DBA 来完成。但只要掌握数据库内部对任务的处理方式,我们也可以设计出高效的索引。