PDF转Excel:高效去除AI特征,实现数据自由编辑
731
2022-05-28
目前这个客户说系统有些慢,公司让我去客户哪边解决下,经过综合分析,最后得查到是对接的第三方数据库数据量过大导致的。
目前涉及到数据量过大的数据表有
目前这个客户说系统有些慢,公司让我去客户哪边解决下,经过综合分析,最后得查到是对接的第三方数据库数据量过大导致的。
目前涉及到数据量过大的数据表有
以上数据表都是过亿级别的数据表,已经影响到平台的正常使用,所以建议考虑做分区处理,分区后的数据以单独的数据块存放,解决磁盘I/O瓶颈,提高磁盘的读写能力,增加Mysql的性能
分区设计
时间阀值需求,指标明细保留90天,趋势数据保留3年
监控的指标数据需要能查询90天内的明细,所以原始明细数据保留90天,指标多及监控间隔时间短,必然产生大量的数据
每天一个分区存储原始数据
统计趋势数据,及删除超过90天的明细数据
数据表分区规划示意图
实施
通过定时器触发分区函数,首先检查分区是否已经存在,如果不存在则创建,同时检查过期数据,如果不在保留时间阀值内,则删除对应的分区
创建分区及删除分区执行流程图
涉及到数据库函数为:
partition_maintenance_all 主要执行入口
partition_maintenance 主要判断分区是否存在
partition_verify 判断当前时段内的分区是否存在
partition_create 创建分区
partition_drop 删除分区*
分区创建后,跟进分区及分区数据是否正常
常用语句
-- 查看数据表创建语句,其中带有分区信息 show create table 数据表名称 -- 转换时间戳格式 select (FROM_UNIXTIME(1638374400, '%Y-%m-%d %H:%i:%s')); -- 查询某个分区数据量 select count(*) from history PARTITION(分区名称); -- 查询整个表数据量,统计全部分区的数据量 select sum(table_rows) from information_schema.`PARTITIONS` where table_name='数据表名称';
如果分区、数据正常,则表示数据表分区功能实施完成
目前该方案已经部署在客户生产环境,从目前运行情况来看,没有发现什么问题,性能明显提高很多,如果大家在设计或部署的时候遇到问题,请留言交流。
喜欢的朋友记得给个关注~
MySQL
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。