首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何正确清理MySQL数据

如何正确清理MySQL数据 1. 为什么删了数据,表文件大小没有变 1.1 数据删除流程 删除记录,只会将记录标记为删除,表示该位置可以服用。 数据数据页,表示数据页可以复用。...使用 delete 删除所数据,所有的数据页会被标记为可复用,但是磁盘空间占用没有变化。 1.2 数据空洞 删除,插入等操作会使数据页上出现空元素,也叫做数据空洞。 2....如何避免数据空洞 假设数据表A中存在大量数据空洞,解决办法就是重建表。 2.1 重建表流程 建立临时文件,扫描表A主键所有数据页。 利用表A记录生成B+树,存储到临时文件X。...生成临时文件过程中,所有对表A操作记录在日志文件中。 临时文件X生成后,将日志文件应用到临时文件,得到新临时文件 用临时文件 替换表A数据文件。...2.2 什么是Online DDL 在复制表同时,将对表操作,写入日志文件,之后再将日志文件应用到复制文件上,实现复制表时候,不阻塞其他对表写入操作,因此称为Online DDL。

4.7K30

MySQL数据清理需求分析和改进

昨天帮一个朋友看了MySQL数据清理问题,感觉比较有意思,具体实施这位朋友还在做,已经差不多了,我就发出来大家一起参考借鉴下。...为了保证信息敏感,里面的问题描述可能和真实情况不符,但是问题处理方式是真实。 首先这位朋友在昨天下午反馈说他有一个表大小是近600G,现在需要清理数据,只保留近几个月数据。...rename table,这是MySQL归档数据一大利器,在其他商业数据库里很难实现。 但是为了保险起见,我说还是得看看表结构再说。结果看到表结构,我发现这个问题和我预想完全不一样。...为了进一步验证,我让朋友查询一下这个表数据量,早上时候他发给了我最新数据,一看更加验证了我猜想。...按照这个思路来想,自己还有些成就感,发现这么大一个问题症结,如果数据没有特别的存储,200万数据其实也不算大,清理起来还是很容易

1.5K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL数据清理有技巧,这么破

    比如一个对数据表做清理操作,可能看起来就是做些delete操作,有什么好办法和技巧呢。...所以我目标是:在正常时间进行数据清理工作,而且对于业务无感知。...本着这个目标,我就得更加细致和认真一些,比如表test需要保留多长时间数据,存在哪些时间字段,我们清理和补录是基于哪些时间字段,我整理了下表: ? 可以看到整个清理工作量还是比较大。...,业务侧只会关注当天数据,而后续计算任务会在另外一个时段进行,也就意味着我们数据清理数据补录工作可以改造为一种异步模式。...而整个数据写入根据测试,基本都是4秒内就可以完成数据写入。 执行清理之后效果如何呢,可以看到清理数据效果还是很不错。 ?

    1.4K30

    Linux-MySQL数据备份和定时清理

    最近接了个新需求,需要将我们经常使用几个数据库,MySQL、influxdb在Linux系统上实现定时自动备份,比如每天备份一次,间隔31天清理31天之前备份数据,研究了一下,准备先从MySQL实现...MySQL自己已经提供了命令行导出数据数据以及文件一种工具mysqldump,其实可以通过命令行直接导出数据数据实现备份。...database_name > test.sql 备份单个数据结构 mysqldump -uroot -p123456 database_name -d > test.sql 备份单个数据数据...: mysql> source /test.sql 编写shell脚本维护备份MySQL数据库文件 在linux中,通常使用BASH脚本对需要执行内容进行编写,加上定时执行命令crontab实现日志自动化生成...以下代码功能就是针对mysql进行备份,配合crontab定时任务,实现备份内容为近10天内每天mysql数据库记录。

    1.9K20

    MySQL冗余数据清理一些总结

    和开发同学沟通后,发现实际数据清理需求比想象要略复杂一些,一方面要按照业务特点删除一些已有的数据,然后才按照冗余数据写入情况清理数据表为rc_user_info,数据量不是很大,大概是30万左右...,转换为数据操作大体如下: 1)按照业务属性删除部分数据,删除ustatus=2数据 2)按照字段uuser,ucode组合清理冗余数据,只保留最新数据记录(字段use_info_id是流水号)即可...在test数据库中复制数据,模拟整个数据清理和创建唯一性索引完整过程,待验证确认后,在线上环境进行数据清理和变更。 比如样例数据如下: ?...经过一通清理之后,需要保留数据仅为1条,即use_info_id=61543数据记录,其中红色框住数据是ustatus=2数据,需要清理,然后按照use_info_id进行排序,取最新值即可。...一旦某个业务数据按照现有逻辑清理存在问题,也可以及时进行追溯和调整。

    97560

    Mysql清理binlog几种方式

    .010'; PURGE BINARY LOGS BEFORE '2008-04-02 22:46:26'; 2.1 清理到某个binlog 指定binlog会保留 mysql> show master...524735314 Jul 26 11:34 mysql-bin.000081 205076231 Jul 26 11:42 mysql-bin.000082 清理11:34前binlog mysql...主从环境下配置步骤: 启动master和slave,开启replication(即复制) 在master上运行一些测试语句,看数据是否能够复制到 slave上面 当复制运行正常的话,就在从上stop...slave 然后执行 reset slave,去掉不需要数据 在master上面执行reset master 清除测试产生数据 5 清理注意事项 主从架构下,如果复制正在进行中,执行该命令是安全...备份将要删除所有日志(看情况)。 清理除目标日志之外所有日志。

    2K40

    MongoDB数据清理

    对于保留固定时间窗口collection,通常是使用 Capped Collections 类型集合。但是如果有些Collection希望自己控制删除数据时间,则可以使用下面的这个脚本。...生成测试数据-- 注意下面插入是 new Date("2023-01-01T00:00:00Z") 日期时间类型,如果插入是"2023-01-01 00:00:00" 则表示是字符串类型,而不是时间类型...db.tb1.insertOne({ "name": "example2", "timestamp": new Date("2023-01-01T00:00:00Z")})db.tb1.find()数据清理脚本...") # 避免对数据库造成过大压力 time.sleep(sleep_time) client.close() print("Batch deletion completed....")# 删除超过30天数据,每批次删除1000条,间隔1秒clean_old_data_in_batches("db1", "tb1", 30, batch_size=1000, sleep_time

    14610

    数据清理简要介绍

    清理数据应该是数据科学(DS)或者机器学习(ML)工作流程第一步。如果数据没有清理干净,你将很难在探索中看到实际重要部分。一旦你去训练你ML模型,他们也将更难以训练。...也就是说,如果你想充分利用你数据,它应该是干净。 在数据科学和机器学习环境中,数据清理意味着过滤和修改数据,使数据更容易探索,理解和建模。...在本文中,我们将讲解一些常见数据清理,以及可以用来执行它pandas代码! 缺失数据 大型数据集几乎不可能毫无瑕疵。也就是说,不是所有的数据点都具有其所有特征变量值。...包含异常值图(左)和删除了异常值直方图(右) 错误和重复数据 错误数据意思是不应存在或者完全错误数据点或值。例如,假设你一个特征变量称为“性别”,其中大多数值是“男性”或“女性”。...重复数据数据集中完全重复数据点。如果有太多这种数据,它会影响ML模型训练。如前所述,可以简单地从你数据中删除重复数据。 可以通过删除或使用某些智能替换来处理错误数据

    1.2K30

    数据清理最全指南

    清理和理解数据对结果质量都会有很大影响。...目录 · 数据质量(合法性,准确性,完整性,一致性) · 工作流程(检查,清洁,验证,报告) · 检查(数据分析,可视化,软件包) · 清理(无关数据,重复数据,类型转换,语法错误) · 验证 · 总结...准确性:数据接近真实值程度。 完整性:所有必需数据已知程度。 一致性:数据在同一数据集内或跨多个数据一致程度。...2.清洁:修复或删除发现异常。 3.验证:清洁后,检查结果以验证是否正确。 4.报告:记录所做更改和当前存储数据质量报告。 清理 数据清理涉及基于问题和数据类型不同技术。...可以应用不同方法,每种方法都有自己权衡。总的来说,不正确数据被删除,纠正或估算。 ? 不相关数据: 不相关数据是那些实际上不需要数据,并且不适合我们试图解决问题。

    1.2K20

    Redis 数据清理策略详解

    背景 摸清 Redis 数据清理策略,给内存使用高被动缓存场景,在遇到内存不足时 怎么做是最优解提供决策依据。 ...本文整理 Redis 数据清理策略所有代码来自 Redis version : 5.x, 不同版本 Redis 策略可能有调整 清理策略 Redis 清理策略,总结概括为三点,被动清理、定时清理、...maxmemory_policy 可选如下: volatile-lru:从已设置过期时间数据集中挑选【最近最少使用】 Key 进行删除 volatile-ttl:从己设置过期时间数据集中挑选...【将要过期】 Key 进行删除 volatile-lfu:从己设置过期时间数据集中选择【最不常用】 Key 进行删除 volatile-random:从己设置过期时间数据集中【任意选择】Key...进行删除 allkeys-lru:从数据集中挑选【最近最少使用】 Key 进行删除 allkeys-lfu:从数据集中【优先删除掉最不常用】 Key allkeys-random:从数据集中

    60220

    Python | 地址数据清理相关

    前言 实证研究过程中,少不了地址数据清理。比如为数据匹配省市信息、从大段文本中提取地址、从电话号码、身份证等信息中提取地址。面对这些清理工作,你有什么思路吗?...其实在 Python 中有一些库可以很方便来解决这些问题,今天为大家介绍一些用于地址数据清理库。...后文用到外部库主要有 cocoNLP、id_validator 和 cpca (Chinese Province City Area) ,可以在命令行窗口输入如下进行安装: !...,数据源为爬取自中华人民共和国民政局全国行政区划查询平台-中国三级行政区划。...本库最主要方法是cpca.transform,该方法可以输入任意可迭代类型(如 list,pandas Series 类型等),之后将其转换为一个 DataFrame ,通过它可以实现匹配省市信息

    2.3K40

    数据科学原理与技巧 四、数据清理

    术语“数据清理”是指梳理数据,并决定如何解决不一致和缺失值过程。我们将讨论数据集中发现常见问题,以及解决这些问题方法。 数据清理存在固有的局限性。例如,没有任何数据清理能够解决带偏差采样过程。...在着手进行有时很长数据清理过程之前,我们必须保证,我们数据是准确收集,尽可能没有偏差。只有这样,我们才能调查数据本身,并使用数据清理来解决数据格式或输入过程中问题。...我们将通过处理伯克利市警察数据集,介绍数据清理技术。 调查伯克利警察数据 我们将使用伯克利警察局公开数据集,来演示数据清理技术。 我们已经下载了服务呼叫数据集和截停数据集。...清理呼叫数据集 现在我们来清理呼叫数据集。head shell 命令打印文件前五行。 !...清理 100% 数据通常需要很长时间,但不清理数据会导致错误结论;我们必须衡量我们选择,并在每次遇到新数据集时达到平衡。 数据清理过程中做出决定,会影响所有未来分析。

    91720

    一种线上数据清理数据方法

    一种线上数据清理数据方法 01 场景分析 今天下午,开发同事提来一个需求,需要在线上要删除一些数据记录,简单看了看数据分布,大概是要删除数据表中两千七百多万条记录,数据总记录是两千八百多万...这里将实际应用案例简单重构为以下方法: mysql> select date,count(*) from test.tbl_a group by date; +----------+------...以下是操作方法,需要注意是,应用下面的操作方法前提是: 要删除数据占了数据表中绝大部分。...和test1中表tbl_b进行交换,等价于将test数据库中表所有数据清除。...避免了我们对过多数据进行扫描。 mysql中对大表进行rename操作,rename命令会直接修改底层.frm文件,所以它速度是相当之快

    1.1K20
    领券