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 期月报

目录
相关文章
|
3月前
|
消息中间件 Java 应用服务中间件
我是如何通过火焰图分析让应用CPU占用下降近20%的
分享作者在使用Arthas火焰图工具进行Java应用性能分析和优化的经验。
|
1天前
|
存储 设计模式 监控
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
本文介绍了 Java 应用常见的 CPU & JVM 内存热点原因及优化思路。
|
3月前
|
监控 并行计算 数据处理
构建高效Python应用:并发与异步编程的实战秘籍,IO与CPU密集型任务一网打尽!
在Python编程的征途中,面对日益增长的性能需求,如何构建高效的应用成为了每位开发者必须面对的课题。并发与异步编程作为提升程序性能的两大法宝,在处理IO密集型与CPU密集型任务时展现出了巨大的潜力。今天,我们将深入探讨这些技术的最佳实践,助你打造高效Python应用。
59 0
|
4月前
|
canal 消息中间件 关系型数据库
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
949 4
|
5月前
|
SQL 监控 关系型数据库
MySQL优化: CPU高 处理脚本 pt-kill脚本
MySQL优化: CPU高 处理脚本 pt-kill脚本
|
1月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
181 7
|
1月前
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
2月前
|
传感器 算法 机器人
定点 CPU 在哪些领域有应用
定点CPU主要应用于对成本和功耗敏感的嵌入式系统中,如消费电子、汽车电子、工业控制和物联网设备等,因其结构简单、效率高而受到青睐。
|
7月前
|
缓存 C语言 计算机视觉
程序与技术分享:CPU0处理器的架构及应用
程序与技术分享:CPU0处理器的架构及应用
|
3月前
|
存储 缓存 算法
CPU优化
【10月更文挑战第7天】
60 1