利用event为zabbix数据表定期添加和删除分区

简介:

导读

利用MySQL的event来自动维护表分区。

我们去年就开始把zabbix数据库改成用TokuDB来支撑,并且启用了表分区(详情见:迁移Zabbix数据库到TokuDB)。这样做的好处很明显,较早的历史数据可以通过删除分区快速废弃掉。要知道,zabbix数据表默认是没有针对时间字段创建索引的,因此如果执行删除的SQL命令,其效率会很差,而直接删除分区就快多了。

先看history表的分区规则:

CREATE TABLE history (
  itemid bigint(20) unsigned NOT NULL,
  clock int(11) NOT NULL DEFAULT '0',
  value double(16,4) NOT NULL DEFAULT '0.0000',
  ns int(11) NOT NULL DEFAULT '0',
  KEY history_1 (itemid,clock)
) ENGINE=TokuDB DEFAULT CHARSET=utf8 ROW_FORMAT=TOKUDB_QUICKLZ
PARTITION BY RANGE (clock)
(PARTITION p20150531 VALUES LESS THAN (1433088000) ENGINE = TokuDB,
...
 PARTITION p20160411 VALUES LESS THAN (1460390400) ENGINE = TokuDB);

对这个表,我们每天要的是:创建一个新的分区,而后删除N个月前的历史旧分区。这个工作可以通过系统的cron来实施,也可以利用MySQL自身的event来做,在这里我们选择用event,没什么特殊的原因,只是想顺便尝试下event而已,呵呵。

一个定期调度的event写起来并不难,下面是参考样例,相信很快就能看明白:

相关文章
|
2月前
|
API 数据库 流计算
有大佬知道在使用flink cdc实现数据同步,如何实现如果服务停止了对数据源表的某个数据进行删除操作,重启服务之后目标表能进行对源表删除的数据进行删除吗?
【2月更文挑战第27天】有大佬知道在使用flink cdc实现数据同步,如何实现如果服务停止了对数据源表的某个数据进行删除操作,重启服务之后目标表能进行对源表删除的数据进行删除吗?
55 3
|
4月前
|
流计算
Flink CDC里关于doris的动态分区问题,对以及建好的动态分区表,可以再次修改历史分区的保留时间嘛?
【1月更文挑战第24天】【1月更文挑战第117篇】Flink CDC里关于doris的动态分区问题,对以及建好的动态分区表,可以再次修改历史分区的保留时间嘛?
39 6
|
4月前
|
流计算
在使用FlinkSQL进行数据同步时,创建了一个新的任务,但发现无法删除旧任务同步的历史数据
在使用FlinkSQL进行数据同步时,创建了一个新的任务,但发现无法删除旧任务同步的历史数据
|
7月前
|
SQL 关系型数据库 MySQL
Mysql之视图,索引及数据的备份与恢复
Mysql之视图,索引及数据的备份与恢复
40 0
|
9月前
|
存储 关系型数据库 MySQL
头大了,Mysql写入数据十几秒后被自动删除了
头大了,Mysql写入数据十几秒后被自动删除了
60 0
|
关系型数据库 测试技术 数据库
Postgres 如何清空数据库下的所有表记录,但保留表结构?
Postgres 如何清空数据库下的所有表记录,但保留表结构?
415 0
|
SQL HIVE
hive清空表删除分区
hive清空表删除分区
|
SQL 监控 关系型数据库
利用event为zabbix数据表定期添加和删除分区
利用event为zabbix数据表定期添加和删除分区
|
存储 SQL 数据库
DM8数据库批量创建表,插入数据,更改表信息,删除测试
在测试产品的功能和性能的时候需要大量数据表,我们可以通过**游标**和**存储过程**批量创建测试表,插入测试数据,更改测试表,删除测试表。
|
SQL 监控 数据库
删库不用跑路:Sql Server 利用日志恢复被删除的表及数据
相信不少人都有删库或被删库的经历。当事情发生后,是跑路,还是自首?相信每个人都没有想过这两个选项,大家首先想到的是如何恢复数据。 网络图,侵删 今天我们将进行一个实验,试图在删库后悄悄的恢复数据,然后假装什么都没发生,继续混点。
2112 0

推荐镜像

更多