percona
在 Percona 的“Generating Numeric Sequences in MySQL”这篇在讨论产生字串序列,主要是在 MySQL 环境下,里面看到的技巧“Session Variable Increment Within a SELECT”这组,刚好可以用在要在每个 row 里面增加名次: 另外看到 MariaDB 与 MySQL 8.0 系列因为有多支援各种功能,刚好也可以被拿来用,然后最后也提到了 Percona 自家出的 MySQL 8.0.20-11 将会直接有 SEQUENCE_TABLE() 可以用 (这应该才是 Percona 这篇文章的主要目的,推销一下自家产品的新功能)。
在 Oracle 的工程师的 blog 上可以看到不少说明 InnoDB 在多 CPU 环境下的显著进步,不过我是觉得看看就好... 进步是一定有,但实际用起来通常不会有官方说的那么多 :p 可以预期不久后 Percona 应该会丢出对应的版本 (至少之前已经有风声了),到时候就用 Percona 的版本吧。 原因的话就不详细写了,上面有一些无关痛痒的官方说法。在“Oracle who? Fedora & openSUSE will replace MySQL with MariaDB”报导里写的比较直接
解释一下“插入缓冲”(Insert Buffer):InnoDB为了避免更新数据时更新索引损失太多性能,使用了这种称为Insert Buffer的方法来缓冲索引更新,对于非聚集索引(主键索引)、唯一索引的修改,不是每次都直接插入索引页,而是先判断要更新的这一页在不在内存中,如果不在则存入Insert Buffer,按照Master Thread的调度规则来合并非唯一索引和索引页中的叶子结点,这样经常能减少更新索引的代价。为什么要求是非唯一索引(排除主键索引和唯一索引)呢?因为唯一索引要检查记录是不是存在,所以必须把修改的记录影响的索引页读出来才知道是不是唯一,这样Insert Buffer就没意义了,反正要读出来,所以只对非唯一索引有效。 XtraDB是Percona Team在InnoDB的基础上开发出来的一个更加强大的存储引擎,它百分百的兼容InnoDB,我们可以用XtraDB来替代为MySQL的发展做出历史性贡献的InnoDB,新的XtraDB引擎将具有更加强大的性能优势,以及良好的扩展性和一些新特性