AliSQL 20180124 版本发布 支持 CPU TIME 和优化 BINLOG 应用时索引选择

简介: AliSQL 在线程级别增加了 CPU time 的性能指标,可以用来度量某个SQL或者执行单元所耗费的CPU 时间片,便于性能诊断。 当 Binlog 为 Row 模式的情况下,备库在同步更新时,索引的选择是基于简单规则的,没有走优化器的代价模型,所以有可能会因为索引选择不当导致主备有较大的延迟。

Abstract

AliSQL 在线程级别增加了 CPU time 的性能指标,可以用来度量某个SQL或者执行单元所耗费的CPU 时间片,用于性能诊断。

当 Binlog 为 Row 模式的情况下,备库在同步更新时,索引的选择是基于简单规则的,没有走优化器的代价模型,所以有可能会因为索引选择不当导致主备有较大的延迟。AliSQL 针对有自增列的索引,优化备库索引选择规则。

AliSQL 20170716 版本 中发布了 Invisible Indexes 功能,但是在备库中 Invisible Indexes 却会被备库的 SQL 线程使用,这次发布修复了这个 BUG。

AliSQL REPO: https://github.com/alibaba/AliSQL

AliSQL Release Notes: https://github.com/alibaba/AliSQL/wiki/Changes-in-AliSQL-5.6.32-(2018-01-24))

1. 获取 CPU time

概要

支持使用 SQL 语句来获取当前线程的 CPU time,用来协助诊断 SQL 的性能问题,支持两种获取方式:

SHOW STATUS LIKE 'cpu_time';

SHOW FULL PROCESSLIST;

SHOW FULL PROCESSLIST ` 中增加一列 cpu_time。

2. 当备库应用 Binlog 时优先选择有自增属性的列

概要

在 ROW 格式下,备库在同步更新时,索引的选择规则如下:

  1. PK
  2. UK(不含 NULL 值)
  3. 一般索引或者 UK (包含 NULL 值)
  4. 全表扫描

从1到4,优先级依次递减,在选择时,只要有索引满足规则,就选择这个索引,并不再往下找了。实际上在第三个规则中应该优先选择带有自增属性的列作为索引,修改之后的优先级如下:

  1. PK
  2. UK(不含 NULL 值)
  3. 带有自增属性的索引
  4. 一般索引或者 UK (包含 NULL 值)
  5. 全表扫描

3. 备库仍然可以使用 Invisible index

概要

Invisible Index 的属性表示了在 SQL 语句执行过程中,这个索引将不会被优化器采用,但在备库 Row 模式复制的情况下, Invisible Index 仍然可能会被采用,用于 Row Event Apply。 这个 Bug 已经提交给了官方 bug#88847, 在 AliSQL 中首先修复掉了,具体分析过程可以参考201801 期月报

目录
相关文章
|
2月前
|
编译器 Linux C语言
C++新特性“CPU优化对齐”
C++新特性“CPU优化对齐”
|
2月前
|
JSON TensorFlow 算法框架/工具
Windows下安装Anaconda5.3.1+Python3.8+TensorFlow2.13.0-CPU版本总结
Windows下安装Anaconda5.3.1+Python3.8+TensorFlow2.13.0-CPU版本总结
222 0
|
18天前
|
缓存 C语言 计算机视觉
程序与技术分享:CPU0处理器的架构及应用
程序与技术分享:CPU0处理器的架构及应用
|
12天前
|
TensorFlow 算法框架/工具 异构计算
CPU版本安装
【7月更文挑战第3天】CPU版本安装。
11 1
|
1月前
|
运维 Serverless Nacos
Serverless 应用引擎产品使用合集之在访问量过大的情况下,函数配置的cpu和内存会自动扩容吗
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
14天前
|
缓存 弹性计算 监控
云服务器 CPU 使用率高的问题排查与优化
云服务器 CPU 使用率高的问题排查与优化
26 0
|
1月前
|
SQL 数据处理 API
实时计算 Flink版产品使用问题之holo的io以及cpu使用较为稳定,sink端busy一直在20%左右,有时候50%,该如何优化
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
8月前
|
存储 Linux Docker
跨cpu架构部署容器技术点:怎样修改Linux 的内核版本
在使用Docker 进行跨平台部署之后,我们还可以尝试进行跨架构部署。 从X86 架构上移植到 aarch64 上。
218 0
|
2月前
|
Linux
centos 查看服务器信息 版本cpu
centos 查看服务器信息 版本cpu
47 0
|
2月前
|
存储 机器学习/深度学习 测试技术
mnn-llm: 大语言模型端侧CPU推理优化
mnn-llm: 大语言模型端侧CPU推理优化
638 1