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调优相关推荐

  1. zabbix mysql 8g优化_Zabbix分区优化

    Zabbix分区优化 Zabbix数据库优化 目的: 快速清理历史数据,并减少数据存储容量 方法: 历史表使用分区表(删除分区表速度快),使用Tokudb引擎(适合大量insert少量update和s ...

  2. mysql配置优化ya_mysql性能调优工具之mytop

    Mysql性能调优工具之mytop的安装和使用 1.mytop的下载地址 2.首先安装mytop必要的组件. yum -y install perl-DBD-MySQL perl-DBIperl-Te ...

  3. sqlserver mysql性能优化_sqlserver性能调优第一步

    相信不少的朋友,无论是做开发.架构的,还是DBA等,都经常听说"调优"这个词.说起"调优",可能会让很多技术人员心头激情澎湃,也可能会让很多人感觉苦恼,不知道如 ...

  4. MYSQL企业常见架构与调优经验分享-高俊峰-专题视频课程

    MYSQL企业常见架构与调优经验分享-8967人已学习 课程介绍         爱维Linux独家发行,从MYSQL系统安装.配置入手,从多个方面深入介绍MYSQL的使用技巧和调优策略,大限度发挥M ...

  5. mysql100个优化技巧_MySQL 调优/优化的 100 个建议

    MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适合特定的安装环境,但是思路是相通的.我已经将它们分成 ...

  6. Mysql性能优化、Mysql参数优化、Mysql配置优化

    码字不易,转载请附原链,搬砖繁忙回复不及时见谅,技术交流请加QQ群:909211071 Mysql性能优化.Mysql参数优化.Mysql配置优化.Mysql参数优化对于不同的网站,及在线量等,以及机 ...

  7. Spark性能优化:Shuffle调优篇

    Spark性能优化:Shuffle调优篇 一.调优概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO.序列化.网络数据传输等操作.因此,如果要让作业的性 ...

  8. mysql物理删除索引_mysql创建索引,mysql索引优化,mysql索引创建删除

    mysql创建索引,mysql索引优化,mysql索引创建删除 ================================ ©Copyright 蕃薯耀 2020-11-23 http://fa ...

  9. 风控决策流程的优化与规则调优

    如果说信贷流程上中有哪些内容是经常需要回顾与优化的,我们认为有两个最重要部分的内容,那就是决策流程与规则. 决策流程是骨架,也是整体授信的架构,如果决策流程错了,做得再好的规则也是白搭. 今天我们来讲 ...

最新文章

  1. 【自定义注解使用】增加service层方法访问日志
  2. elasticsearch的join查询
  3. SQL 语句还原SQL Server数据库
  4. php密码安全检测,php – 密码安全随机字符串函数
  5. 链接详解--共享库命名
  6. 卸载Oracle数据库(有图有真相)
  7. python throw error_Python实用笔记——错误处理
  8. 关于信贷资产逾期计算口径和小微模型的经典问题与答案
  9. QEMU, KVM, QEMU-KVM 和 Goldfish
  10. C# 委托的三种调用示例(同步调用 异步调用 异步回调)
  11. 一款开源Android在线音乐播放器
  12. 机器学习——逻辑回归算法代码实现
  13. 计算机专业表情包图片,各个专业表情包盘点 | 你的专业也有自己专属表情包吗?...
  14. 坯子库无法一键安装插件没用_坯子插件库官方版下载_坯子插件库v2020.2官方版 - Win7旗舰版...
  15. 听风的插件-正在战斗中
  16. 亚马逊多账号防关联的解决方式
  17. 第十二章 软件壳(三)(动态加载型壳)
  18. 今日收获 可以点击的标签 鼠标悬浮 小手图标
  19. iOS 15.3+ SwiftUI中List子项目禁止被删除但头部仍显示删除按钮的解决
  20. 标准正态分布变量的累积概率分布函数

热门文章

  1. 集群文件系统GlusterFS安装配置
  2. 使用SQL Server 2008 Extended Events SSMS Addin轻松管理XEvents
  3. [新闻]Ubuntu7.04于4月19日全球同步发布
  4. 7. U9成本核算基本流程概述
  5. 分辨真假数据科学家的20个问题及回答
  6. 使用Let`s encrypt 免费的https 证书
  7. 各种图(流程图,思维导图,UML,拓扑图,ER图)简介
  8. Java文件路径(getResource)
  9. iOS UUID配合keychain的替换方案实现
  10. 最后关于nginx+passenger+ror+mysql的安装部署过程