当前位置: 首页 > news >正文

包头做网站的公司招聘信息肥城市区seo关键词排名

包头做网站的公司招聘信息,肥城市区seo关键词排名,承德建设银行网站,网站建设需要哪些技术人员目录 迁移脚本删除数据以及备份数据 解决方法OPTIMIZE TABLE二进制日志按月生成数据 最近某个项目虽说用户量不大,但是,单表的数据量越来越大,mysql一般单表超过千万级别后,性能直线下降,所以利用shardingphere按月做了…

目录

  • 迁移脚本
    • 删除数据以及备份数据
  • 解决方法
    • OPTIMIZE TABLE
    • 二进制日志
    • 按月生成数据

最近某个项目虽说用户量不大,但是,单表的数据量越来越大,mysql一般单表超过千万级别后,性能直线下降,所以利用shardingphere按月做了一个分表,所以得把历史数据迁移到各个分月的表中。

在这里插入图片描述

迁移脚本

直接开始迁移,执行如下脚本

insert into cern_202301
select * from cern_bak
where report_time>='2023-01-01 00:00:00'
and report_time<='2023-01-31 23:59:59'
  • report_time是作为分表字段的依据,这里是迁移1月份的数据到cern_202301中
  • 因为已经迁移最近半年的数据到分表中,保证在不影响业务的前提下,做迁移操作
  • 迁移到一半发现磁盘空间不够

如果是你,你的解决方案是?

  • 可以留言一起,交流一下学习一下

删除数据以及备份数据

####一次导出所有数据
mysqldump -uroot -p123456 iopace cern > /mnt/datadisk1/cern.sql###按月导出数据--不用执行,了解即可mysqldump -uroot -p123456 iopace cern_bak --where=" report_time>='2023-04-01 00:00:00' and report_time<='2023-04-30 23:59:59'" > /mnt/datadisk1/cern2304.sql###导入数据--不用执行,了解即可
mysql -u root -p123456 iopace<cern2307.sql
  • root为用户名
  • 123456为密码
  • iopace为数据库名
  • cern为需要导出的表名
  • /mnt/datadisk1/cern.sql 表示导出到哪里,因为我们有三个磁盘,这是另外一个磁盘,暂时未使用,所以数据导出到这里
    在这里插入图片描述
  • 因为我已经把业务已经切换到分表来了,所以cern表是不会存在写入操作的,一点要注意,防止丢失数据

数据已备份,那我们就可以执行delete操作

delete from cern
where report_time>='2024-02-01 00:00:00'
and report_time<='2024-02-10 23:59:59'
  • 之前已经迁移半年的数据,那我就delete最近半年的数据
  • 因为表数据量有点大,所以,我都是10天删除一次,防止花费时间过长
  • 清理大半年的数据后,发现磁盘空间还是没有任何的变化

按我们正常的理解,是不是删除数据后,磁盘大小就会变大

使用delete删除数据,不会把数据文件删除,而是将数据文件的标识位删除,因此会留下数据碎片,当有新数据写入的时候,mysql会利用这些已删除的空间再写入。如果碎片空间满,就不能插入

解决方法

OPTIMIZE TABLE

  • 会优化表,会锁表,建议1个月处理一次,如果不存在大量删除的情况,不太建议使用
  • 实现原理,实际上就是把当前表的数据复制到临时表,再删除当前表,再把临时表重命名为当前表,所以对空间会有要求
OPTIMIZE TABLE cern;
  • cern为需要优化的表名
  • cern表20G左右,1个月的数据大约2.5G左右,当前磁盘可用空间2.5G左右,所以肯定是没有办法通过该方式来优化的
  • 空间足够,可以通过他来处理大量delete的情况

二进制日志

所有的修改、删除都会存放在二进制文件中,有时候误删除后,我们也可以通过二进制日志还还原数据,所以这个文件会有点庞大
在这里插入图片描述

###259200====30天,所以二进制文件保存的周期为30天
show variables like '%expire%';###当前二进制历史文件存放目录show BINARY logs;
###当前正在运行的二进制日志,注意,这个文件是不能动的show master status;

在这里插入图片描述

  • File 表示当前正在运行的二进制日志文件是那个
  • position表示位置,例如主从复制的时候,就会用到
    在这里插入图片描述
  • 下面有很多日志文件,这是我删除一部分后的,当时,大约有20多个文件,每个文件1.5G左右,被我删除到88
  • purge binary logs to ‘binlog.000088’; 表示删除88之前的所有二进制文件

这个时候,我们再去df -h查看磁盘,磁盘空间已释放,

按月生成数据

如果二进制腾出来一部分空间后,还不够,历史数据迁移到各个月分表的,还有一种方式。
就是把cern表的数据,按月导出成sql脚本,按月命名
找一个测试环境,把几个月的sql脚本导入后,测试一下总记录数是否有丢失
如果没有丢失,就可以把cern表删除,再通过dump导入sql的方式,一个月一个月的导入数据

###按月导出数据--不用执行,了解即可
mysql -u root -p123456 iopace<cern2307.sql
http://www.hrbkazy.com/news/19891.html

相关文章:

  • 济南传承网站建设公司武汉seo服务外包
  • 做窗帘网站图片大全最新军事动态最新消息
  • 成都网站建设模版深圳网络推广公司哪家好
  • 天津手机版建站系统哪个好快速排名优化怎么样
  • 做ps彩图什么网站好发布广告的平台免费
  • 网站怎么做优化推广网络服务包括哪些内容
  • 网站建设简介电话婚恋网站排名前三
  • 免费的黄冈网站有哪些平台可以聊天呢seo网站内部优化
  • 互联网非经营性网站icp备案系统百度seo优化是做什么的
  • 网站备案信息关键词seo培训
  • 单页网站如何优化线下推广都有什么方式
  • 17做网站广州沙河百度推广好做吗
  • 网站开发实现前后端分离我想接app纯注册推广单
  • 做党和人民满意的好教师PPT网站网站查询信息
  • 福田网站建设深圳信科网站推广策划书
  • 电子商务网站的管理百度关键词优化系统
  • 对于协会的新年祝贺语网站模板网络服务器搭建
  • 运维网站建设网站seo优化工具
  • 网站整站截图百度seo价格查询
  • 网站推广的方法是什么2023年适合小学生的新闻
  • 开发一个区块链app多少钱企业seo排名
  • 做网站公司赚钱吗?互联网营销渠道有哪些
  • 百度网盘0基础网站开发教程杭州关键词排名提升
  • Python爬取wordpress百度seo排名优化费用
  • 自己做网站要会什么软文是啥意思
  • 视频解析网站是怎么做的北京搜索引擎推广服务
  • b2b网站建设开发人民日报最新新闻
  • 100%上热门文案seo快速排名百度首页
  • 网站推广如何做网络推广营销软件
  • mui做网站西安百度网站快速优化