MySQL数据库集群瘦身实践

数据库集群过大,迁移备份慢,易产生慢查,且问题容易扩散,保持小而美是一个健康集群的重要标准。
本文主要讲述了作者在MySQL数据库集群瘦身的一次重要实践。
集群释放800+G,业务稳定运行两年无忧。

背景调查

调研基本情况,防止对上下游产生影响

  • 集群架构:一主N从,下游大数据
  • 业务场景:业务影响如何,重要程度如何
  • 数据现状:数据量级、耗时评估
free_G data_G index_G sum_G
127.1 750.5 391.6 1269.1
# 集群概况
SELECT TABLE_SCHEMA
	, sum(ROUND(DATA_FREE / 1024 / 1024 / 1024, 1)) AS free_G
	, sum(ROUND(DATA_LENGTH / 1024 / 1024 / 1024, 1)) AS data_G
	, sum(ROUND(INDEX_LENGTH / 1024 / 1024 / 1024, 1)) AS index_G
	, sum(ROUND((DATA_FREE + DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 / 1024, 1)) AS sum_G
FROM `information_schema`.tables
WHERE 1 = 1
	AND TABLE_SCHEMA = 'my_db';

# 各表情况

SELECT TABLE_NAME, TABLE_COMMENT, TABLE_ROWS
	, ROUND(DATA_FREE / 1024 / 1024 / 1024, 1) AS free_G
	, ROUND(DATA_LENGTH / 1024 / 1024 / 1024, 1) AS data_G
	, ROUND(INDEX_LENGTH / 1024 / 1024 / 1024, 1) AS index_G
	, ROUND((DATA_FREE + DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 / 1024, 1) AS sum_G
FROM `information_schema`.tables
WHERE 1 = 1
	AND TABLE_SCHEMA = 'my_db'
ORDER BY sum_G DESC;

制定目标

制定优化目标,锁定关键大表

  • 分库分表
    数据不能删,变瘦了,集群没变,业务迭代复杂了;
    适合业务稳定期做。

  • 业务拆分
    按照业务模块,拆分不同的集群存储,同时可拆分对应的微服务。成本高,适合业务成长期做。

  • 数据清理
    删除过期无效的数据,成本较低,需要周期执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值