开发者社区> Ali_冷香> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
VS2010下安装和使用STLport库
VS2010下安装和使用STLport库
87 0
python2.7 之centos7 安装 pip, Scrapy
一、确定python版本在2.7及以上 强烈建议升级python2.7后再安装pip与setuptools,如果不这样操作会出现很多莫明的问题,让你酸爽到天明!!  如果你是升级到python2.7,更大的可能性是全部通过python setup.py 编译安装,所需要的包含但不限于这些包   lxml,zope.interfac
3029 0
Win7+vs2010下安装boost_1_46_1库
一、boost库分类: (1)不需要编译库:any、array、asio、conversion、crc、bind/mem_fn、enable_if、function、lambda、mpl、smart_ptr.
1145 0
c++ builder中的 XMLDocument 类详解(1) - 要研究的问题
//函数AddChild(const TagName: DOMString): IXMLNode; overload;AddChild(const TagName, NamespaceURI: DOMString): IXMLNode; overload;CreateElement(const Ta...
675 0
centos5.4下Webmin管理系列(一):webmin的安装
一、确定CentOS已经安装,并且所需服务也已成功装好    我在192.168.1.250的一台服务器上安装了CentOS5.4版本,安装了Apache+MySQL+Samba+FTP+DNS+DHCP+SQUID等。
1006 0
+关注
Ali_冷香
阿里云 RDS MySQL 内核资深专家,
14
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载