TiDB性能调优

本文围绕TiDB展开配置与SQL性能调优。配置优化包括系统调优(内存、处理器、存储及文件系统)和软件调优(配置、下推计算结果缓存);SQL性能调优涵盖理解执行计划、优化流程(逻辑与物理优化)以及控制执行计划等内容,助力提升TiDB性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.配置优化

1.1系统调优

1.1.1内存

关闭透明大页

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/degrag

虚拟内存参数

        dirty_ratio 百分比值,固态硬盘降低其值,可提升内存回收时效率

        dirty_background_ratio 百分比值,固态硬盘降低其值可以提供内存回收效率

1.1.2处理器
  • 动态节能

      cpufreq 是一个动态调整 CPU 频率的模块,可支持五种模式。为保证服务性能应选用 performance 模式,将 CPU 频率固定工作在其支持的最高运行频率上,不进行动态调节,操作命令为:

cpupower frequency-set --governor performance
  • 中断亲和性

    • 自动平衡:可通过 irqbalance 服务实现。
    • 手动平衡:
      • 确定需要平衡中断的设备,从 CentOS 7.5 开始,系统会自动为某些设备及其驱动程序配置最佳的中断关联性。不能再手动配置其亲和性。目前已知的有使用 be2iscsi 驱动的设备,以及 NVMe 设置;
      • 对于其他设备,可查询其芯片手册,是否支持分发中断。
        • 若不支持,则该设备的所有中断会路由到同一个 CPU 上,无法对其进行修改。
        • 若支持,则计算 smp_affinity 掩码并设置对应的配置文件
1.1.3存储及文件系统
  • IO调度器 (I/O 调度程序确定 I/O 操作何时在存储设备上运行以及持续多长时间。也称为 I/O 升降机。对于 SSD 设备,宜设置为 noop)
echo noop > /sys/block/${SSD_DEV_NAME}/queue/scheduler
  • 块大小
  • 挂在参数

1.2软件调优

1.2.1配置
  • TiDB内存调优
  • TiKV线程调优
  • TiKV内存调优
  • TiKV Follower Read
  • TiFlash调优
1.2.2下推计算结果缓存
  • 使用Explan Analyze
  • 查看Grafana监控面板

2.SQL性能调优

2.1理解TiDB执行计划  

  • 通过explain查看执行计划
  • 索引查询优化
  • 子查询优化
  • 分区查询优化

2.2SQL优化流程

  • 逻辑优化
    • 列裁剪
    • 关联查询
    • 分区裁剪
    • 谓词下推
  • 物理优化
    • 索引优化
    • 统计信息简介
    • distinct优化

2.3控制执行计划

  • Optimizer Hints
  • 执行计划管理
  • 优化规则集表达式下推的黑名单
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值