zabbix mysql 8g优化_zabbix mysql调优
SELECT table_name AS "Tables", round(((data_length + index_length) / 1024 / 1024), 2) "Size in MB" FROM information_schema.TABLES WHERE table_schema = 'zabbix' ORDER BY (data_length + index_length) DESC limit 10; (查看 mysql数据库表大小)
一 、转换分区表ALTER TABLE history PARTITION BY range( clock) (PARTITION P20160301 VALUES LESS THAN (UNIX_TIMESTAMP('2016-03-01')));
ALTER TABLE history_log PARTITION BY range( clock) (PARTITION P20160301 VALUES LESS THAN (UNIX_TIMESTAMP('2016-03-01')));
ALTER TABLE history_str PARTITION BY range( clock) (PARTITION P20160301 VALUES LESS THAN (UNIX_TIMESTAMP('2016-03-01')));
ALTER TABLE history_text PARTITION BY range( clock) (PARTITION P20160301 VALUES LESS THAN (UNIX_TIMESTAMP('2016-03-01')));
ALTER TABLE history_uint PARTITION BY range( clock) (PARTITION P20160301 VALUES LESS THAN (UNIX_TIMESTAMP('2016-03-01')));
ALTER TABLE trends PARTITION BY range( clock) (PARTITION P20160301 VALUES LESS THAN (UNIX_TIMESTAMP('2016-03-01')));
ALTER TABLE trends_uint PARTITION BY range( clock) (PARTITION P20160301 VALUES LESS THAN (UNIX_TIMESTAMP('2016-03-01')));
二、执行脚本DELIMITER //
DROP PROCEDURE IF EXISTS `zabbix`.`create_zabbix_partitions` //
CREATE PROCEDURE `zabbix`.`create_zabbix_partitions` ()
BEGIN
CALL zabbix.create_next_partitions("zabbix","history");
CALL zabbix.create_next_partitions("zabbix","history_log");
CALL zabbix.create_next_partitions("zabbix","history_str");
CALL zabbix.create_next_partitions("zabbix","history_text");
CALL zabbix.create_next_partitions("zabbix","history_uint");
CALL zabbix.create_next_partitions("zabbix","trends");
CALL zabbix.create_next_partitions("zabbix","trends_uint");
CALL zabbix.drop_old_partitions("zabbix","history");
CALL zabbix.drop_old_partitions("zabbix","history_log");
CALL zabbix.drop_old_partitions("zabbix","history_str");
CALL zabbix.drop_old_partitions("zabbix","history_text");
CALL zabbix.drop_old_partitions("zabbix","history_uint");
CALL zabbix.drop_old_partitions("zabbix","trends");
CALL zabbix.drop_old_partitions("zabbix","trends_uint");
END //
DROP PROCEDURE IF EXISTS `zabbix`.`create_next_partitions` //
CREATE PROCEDURE `zabbix`.`create_next_partitions` (SCHEMANAME varchar(64), TABLENAME varchar(64))
BEGIN
DECLARE NEXTCLOCK timestamp;
DECLARE PARTITIONNAME varchar(16);
DECLARE CLOCK int;
SET @totaldays = 7;
SET @i = 1;
createloop: LOOP
SET NEXTCLOCK = DATE_ADD(NOW(),INTERVAL @i DAY);
SET PARTITIONNAME = DATE_FORMAT( NEXTCLOCK, 'p%Y%m%d' );
SET CLOCK = UNIX_TIMESTAMP(DATE_FORMAT(DATE_ADD( NEXTCLOCK ,INTERVAL 1 DAY),'%Y-%m-%d 00:00:00'));
CALL zabbix.create_partition( SCHEMANAME, TABLENAME, PARTITIONNAME, CLOCK );
SET @i=@i+1;
IF @i > @totaldays THEN
LEAVE createloop;
END IF;
END LOOP;
END //
DROP PROCEDURE IF EXISTS `zabbix`.`drop_old_partitions` //
CREATE PROCEDURE `zabbix`.`drop_old_partitions` (SCHEMANAME varchar(64), TABLENAME varchar(64))
BEGIN
DECLARE OLDCLOCK timestamp;
DECLARE PARTITIONNAME varchar(16);
DECLARE CLOCK int;
SET @mindays = 30;
SET @maxdays = @mindays+4;
SET @i = @maxdays;
droploop: LOOP
SET OLDCLOCK = DATE_SUB(NOW(),INTERVAL @i DAY);
SET PARTITIONNAME = DATE_FORMAT( OLDCLOCK, 'p%Y%m%d' );
CALL zabbix.drop_partition( SCHEMANAME, TABLENAME, PARTITIONNAME );
SET @i=@i-1;
IF @i <= @mindays THEN
LEAVE droploop;
END IF;
END LOOP;
END //
DROP PROCEDURE IF EXISTS `zabbix`.`create_partition` //
CREATE PROCEDURE `zabbix`.`create_partition` (SCHEMANAME varchar(64), TABLENAME varchar(64), PARTITIONNAME varchar(64), CLOCK int)
BEGIN
DECLARE RETROWS int;
SELECT COUNT(1) INTO RETROWS
FROM `information_schema`.`partitions`
WHERE `table_schema` = SCHEMANAME AND `table_name` = TABLENAME AND `partition_name` = PARTITIONNAME;
IF RETROWS = 0 THEN
SELECT CONCAT( "create_partition(", SCHEMANAME, ",", TABLENAME, ",", PARTITIONNAME, ",", CLOCK, ")" ) AS msg;
SET @sql = CONCAT( 'ALTER TABLE `', SCHEMANAME, '`.`', TABLENAME, '`',
' ADD PARTITION (PARTITION ', PARTITIONNAME, ' VALUES LESS THAN (', CLOCK, '));' );
PREPARE STMT FROM @sql;
EXECUTE STMT;
DEALLOCATE PREPARE STMT;
END IF;
END //
DROP PROCEDURE IF EXISTS `zabbix`.`drop_partition` //
CREATE PROCEDURE `zabbix`.`drop_partition` (SCHEMANAME varchar(64), TABLENAME varchar(64), PARTITIONNAME varchar(64))
BEGIN
DECLARE RETROWS int;
SELECT COUNT(1) INTO RETROWS
FROM `information_schema`.`partitions`
WHERE `table_schema` = SCHEMANAME AND `table_name` = TABLENAME AND `partition_name` = PARTITIONNAME;
IF RETROWS = 1 THEN
SELECT CONCAT( "drop_partition(", SCHEMANAME, ",", TABLENAME, ",", PARTITIONNAME, ")" ) AS msg;
SET @sql = CONCAT( 'ALTER TABLE `', SCHEMANAME, '`.`', TABLENAME, '`',
' DROP PARTITION ', PARTITIONNAME, ';' );
PREPARE STMT FROM @sql;
EXECUTE STMT;
DEALLOCATE PREPARE STMT;
END IF;
END //
DELIMITER ;
将上面代码保存partition.sql 文件中
执行
/apps/mysql/bin/mysql -uroot -pPass@word zabbix
/apps/mysql/bin/mysql -B zabbix -uroot -pPass@word -e "CALL create_zabbix_partitions();"
三、加入 crontab
30 23 * * * /apps/mysql/bin/mysql -uroot -pPass@word zabbix
59 23 * * * /apps/mysql/bin/mysql -B zabbix -uroot -pPass@word -e "CALL create_zabbix_partitions();"
zabbix mysql 8g优化_zabbix mysql调优相关推荐
- zabbix mysql 8g优化_Zabbix分区优化
Zabbix分区优化 Zabbix数据库优化 目的: 快速清理历史数据,并减少数据存储容量 方法: 历史表使用分区表(删除分区表速度快),使用Tokudb引擎(适合大量insert少量update和s ...
- mysql配置优化ya_mysql性能调优工具之mytop
Mysql性能调优工具之mytop的安装和使用 1.mytop的下载地址 2.首先安装mytop必要的组件. yum -y install perl-DBD-MySQL perl-DBIperl-Te ...
- sqlserver mysql性能优化_sqlserver性能调优第一步
相信不少的朋友,无论是做开发.架构的,还是DBA等,都经常听说"调优"这个词.说起"调优",可能会让很多技术人员心头激情澎湃,也可能会让很多人感觉苦恼,不知道如 ...
- MYSQL企业常见架构与调优经验分享-高俊峰-专题视频课程
MYSQL企业常见架构与调优经验分享-8967人已学习 课程介绍 爱维Linux独家发行,从MYSQL系统安装.配置入手,从多个方面深入介绍MYSQL的使用技巧和调优策略,大限度发挥M ...
- mysql100个优化技巧_MySQL 调优/优化的 100 个建议
MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适合特定的安装环境,但是思路是相通的.我已经将它们分成 ...
- Mysql性能优化、Mysql参数优化、Mysql配置优化
码字不易,转载请附原链,搬砖繁忙回复不及时见谅,技术交流请加QQ群:909211071 Mysql性能优化.Mysql参数优化.Mysql配置优化.Mysql参数优化对于不同的网站,及在线量等,以及机 ...
- Spark性能优化:Shuffle调优篇
Spark性能优化:Shuffle调优篇 一.调优概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO.序列化.网络数据传输等操作.因此,如果要让作业的性 ...
- mysql物理删除索引_mysql创建索引,mysql索引优化,mysql索引创建删除
mysql创建索引,mysql索引优化,mysql索引创建删除 ================================ ©Copyright 蕃薯耀 2020-11-23 http://fa ...
- 风控决策流程的优化与规则调优
如果说信贷流程上中有哪些内容是经常需要回顾与优化的,我们认为有两个最重要部分的内容,那就是决策流程与规则. 决策流程是骨架,也是整体授信的架构,如果决策流程错了,做得再好的规则也是白搭. 今天我们来讲 ...
最新文章
- 【自定义注解使用】增加service层方法访问日志
- elasticsearch的join查询
- SQL 语句还原SQL Server数据库
- php密码安全检测,php – 密码安全随机字符串函数
- 链接详解--共享库命名
- 卸载Oracle数据库(有图有真相)
- python throw error_Python实用笔记——错误处理
- 关于信贷资产逾期计算口径和小微模型的经典问题与答案
- QEMU, KVM, QEMU-KVM 和 Goldfish
- C# 委托的三种调用示例(同步调用 异步调用 异步回调)
- 一款开源Android在线音乐播放器
- 机器学习——逻辑回归算法代码实现
- 计算机专业表情包图片,各个专业表情包盘点 | 你的专业也有自己专属表情包吗?...
- 坯子库无法一键安装插件没用_坯子插件库官方版下载_坯子插件库v2020.2官方版 - Win7旗舰版...
- 听风的插件-正在战斗中
- 亚马逊多账号防关联的解决方式
- 第十二章 软件壳(三)(动态加载型壳)
- 今日收获 可以点击的标签 鼠标悬浮 小手图标
- iOS 15.3+ SwiftUI中List子项目禁止被删除但头部仍显示删除按钮的解决
- 标准正态分布变量的累积概率分布函数
热门文章
- 集群文件系统GlusterFS安装配置
- 使用SQL Server 2008 Extended Events SSMS Addin轻松管理XEvents
- [新闻]Ubuntu7.04于4月19日全球同步发布
- 7. U9成本核算基本流程概述
- 分辨真假数据科学家的20个问题及回答
- 使用Let`s encrypt 免费的https 证书
- 各种图(流程图,思维导图,UML,拓扑图,ER图)简介
- Java文件路径(getResource)
- iOS UUID配合keychain的替换方案实现
- 最后关于nginx+passenger+ror+mysql的安装部署过程