日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

zabbix mysql 8g优化_zabbix mysql调优

發(fā)布時(shí)間:2025/3/20 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zabbix mysql 8g优化_zabbix mysql调优 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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數(shù)據(jù)庫表大小)

一 、轉(zhuǎn)換分區(qū)表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')));

二、執(zhí)行腳本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 文件中

執(zhí)行

/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();"

總結(jié)

以上是生活随笔為你收集整理的zabbix mysql 8g优化_zabbix mysql调优的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。