有关于drds索引的问题记录
作者:互联网
一、前提概述
1、操作:因业务需要,有将用户相关的数据表从 mysql 迁移至 drds。
2、drds简介:
RDS:阿里云关系型数据库(Relational Database Service,简称 RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。
基于阿里云分布式文件系统和高性能存储,RDS 支持 MySQL、SQL Server、PostgreSQL 和 PPAS(Postgre Plus Advanced Server,一种高度兼容 Oracle 的数据库)引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,解决数据库运维的烦恼。 RDS for MySQL 可以认为是云上的MySQL。
DRDS:分布式关系型数据库服务(Distributed Relational Database Service,简称 DRDS)是阿里巴巴致力于解决单机数据库服务瓶颈问题而自主研发推出的分布式数据库产品,解决了一些传统单库 RDS 数据库的痛点。
DRDS 高度兼容 MySQL 协议和语法,支持自动化水平拆分、在线平滑扩缩容、弹性扩展、透明读写分离,具备数据库全生命周期运维管控能力。 DRDS 前身为淘宝 TDDL,是近千核心应用首选组件。 DRDS 可以认为是云上的TDDL中间件。DRDS必须依赖RDS。
DRDS的主要功能:
1、分布式SQL引擎
· 将数据按照某一个字段值(字符串为hash值)mod进行分库。
· 如同单个RDS的体验,兼容90%MySql的SQL。
2、读写分离
· 配合RDS 只读实例,让读权重配比动态化,从而实现读流量的准实时调整。
3、自主运维
· 分布式数据库从接入到运维(DDL,DML)如同单个数据库体验。
4、平滑扩容
· 可逐个添加RDS实例完成分布式数据库扩容(需要手动配置)。
5、全局唯一ID
· 保持全局唯一但不递增,高可用。
二、问题描述
1、问题现象:
游客系统数据表凌晨迁移完成后,当天下午18点多,drds报警,计算节点的CPU跑满。
2、影响时间:
1小时
3、问题原因:
每天下午18点,有1个定时脚本执行,脚本是向3天内有签到,但今天还没有签到的用户发送签到通知。脚本内逻辑会使用 lasted_sign 和 created_at 两个字段查询符合条件的数据,迁表前(mysql)是单表状态,这两个字段没有索引,虽然执行慢,但不会有太大影响。数据表迁移到drds后,因为drds的特性,导致计算节点的CPU跑满。
4、解决方案:
目前只是先暂停了脚本,让产品和运营观看后台签到数据和埋点,对比脚本暂停期间签到数据是否有较大波动。
根据数据,再确定具体方案:如果有波动此逻辑将转交给大数据处理;如果没有波动将停止脚本。(后续方案为将逻辑交由大数据处理)
5、后续注意事项:
将数据表从MySQL迁移至drds时,要注意drds索引的使用,日常中测试也可以提醒开发。
三、文档参考
drds使用点滴文档:https://blog.csdn.net/cuiwenjun/article/details/90598622
PolarDB-X介绍:https://help.aliyun.com/document_detail/322818.html
标签:RDS,记录,签到,数据库,DRDS,drds,索引,MySQL 来源: https://www.cnblogs.com/JodieRao/p/16482000.html