in 分布式数据库 数据库 ~ read.

数据库的性能优化

主要需要优化问题

  • 存储效率
  • 检索效率
  • 计算效率

各个方面有都可以细分,后面慢慢展开补充。

优化方式

存储

  • 列存
    提高压缩效率,利于OLAP场景下的少数列的读取,降低存储成本。

检索

计算

  • LLVM + 列存
    (x+y)>20这个过滤条件,如果放在类似FilterXO里进行计算,需要频繁进行函数的调用。通过LLVM进行代码重新生成,使这部分代码inline于一个计算函数中,一次调用完成计算,减少函数跳转,大幅提升CPU运算效率。

  • 多核并行
    并行扫描,并行Join,并行Agg ...
    如果Query很简单,经过CBO计算,发现代价低于并行计算,不应进行并行计算。

    文件系统格式的影响:xfs,ext4
    xfs在高并发场景下相比ext4有明显优势,使用ext4+cgroup容易遇到IO HANG问题,xfs没有。

  • NUMA