首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏一涨知识胖五斤

    MySQL异步删除的方法

    常见的删除方式对于的场景,常见的做法:小批量、分批删除;由于直接使用delete,是逐步删除,直接delete不带where条件肯定是不科学的。 因此,可以通过分批delete的方式,建议where条件中最好带上主键或者是索引,加速删除的效率。但对于来说,这种方式性能太低。 删除数据文件,使用限速删除工具操作:bt-rmTDSQL异步删除表功能如果使用的是TDSQL,基于腾讯自研TXSQL内核支持异步删除:https://cloud.tencent.com/document drop异步化相关参数已支持动态设置, 无须重启实例该功能无需用户操作,由内核自动完成,其原理是在删除时,为的数据文件在另外一个目录中创建一个硬连接。 建议数据量小的时候,清空数据,使用truncate命令,删除可直接drop数据量大的时候,使用创建硬链接的方式,drop table后再逐步删除文件;使用TDSQL的话,打开异步删除配置参数,直接drop

    5.8K110编辑于 2022-11-10
  • 来自专栏数据库干货铺

    clickhouse如何删除

    clickhouse 在单或单分区超过50GB时,将无法直接删除 1. 案例 模拟删除或单分区超过50GB时,删除报错的情况 1.1 一个中超过50GB的分区 -- 删除分区的脚本如下 ALTER TABLE testdb.test DROP PARTITION ( force_drop_table' && sudo chmod 666 '/data/clickhouse/flags/force_drop_table'. 1.3 解决方法 报错信息中已给出解决方法: 1) 增大单或单分区的可删除的大小 2) 通过执行脚本,强制删除 1.4 我们选择强制删除来解决 执行如下脚本 sudo touch '/data/clickhouse/flags/force_drop_table' && sudo chmod 666 '/data/clickhouse/flags/force_drop_table' 执行完毕以上脚本后即可删除分区

    3.2K10编辑于 2022-11-11
  • 来自专栏大大刺猬

    mysql 删除方案

    需求 有时候又删除的需求, 一般直接drop就行, 但有时候会有IO的问题. 什么叫呢? /db1/sbtest1.ibd /data/mysql_3306/mysqldata/db1/sbtest1.ibd.rm 然后在mysql上删除sbtest1 drop table sbtest1 然后删除 mysql> flush table sbtest2 for export; shell> mv /data/mysql_3306/mysqldata/db1/sbtest2.ibd /data 100MB /data/mysql_3306/mysqldata/db1/sbtest2.ibd.rm; sleep 1; done 总结 尽量不要在高峰期操作, 虽然每次秒只删100MB. mysql的也尽量不要整这么 , 日志之类的, 可以按时间分个区.

    4K01编辑于 2023-05-27
  • 来自专栏ops技术分享

    安全删除MySQL(下)

    3.帮助手册 bash bin/safe_delete -h 4.使用演示 查看表,删除手机号是“00175731528296189904”的数据,手机号不是索引字段 mysql(test@localhost

    5K10发布于 2021-06-16
  • 来自专栏Hadoop数据仓库

    快速安全删除MySQL

    删除表相关的磁盘文件 二、创建硬链接 三、删除 四、删除文件释放空间 参考: ---- 在一个高负载的生产数据库上删除需要一些技巧,倘若直接drop table,将产生大量磁盘I/ 要优化删除,需要了解其内部执行过程。 一、删除过程 删除原理上分为内存和磁盘两部分操作: 清除表相关的buffer pool页面。 删除表相关的磁盘文件。 删除表相关的磁盘文件 这里只讨论采用独立空间(innodb_file_per_table=1 )的innodb删除。 独立空间在性能和运维上都大大强于共享空间,也是当前绝大多数情况下的存储方式。相对于内存扫描,删除磁盘文件对系统的影响要大得多。问题在于如果文件过大,直接删除会瞬时占用大量I/O,造成IO阻塞。 通常可以使用以下三个步骤删除: 创建文件的硬链接。 drop table删除删除文件释放磁盘空间。 二、创建硬链接 一个磁盘上的存储文件,可以由多个文件名引用。

    6.9K50发布于 2019-10-22
  • 来自专栏ops技术分享

    安全删除MySQL(上)

    一.简介 源码地址 日期:2018/4/12 介绍:工具用于安全删除MySQL,对于一些特定场景可能有用 应用场景:大批删除不走索引但是有主键的场景[可以是单列索引,也可是多列索引] 实现思路:根据where

    5.7K20发布于 2021-06-16
  • MySQL——如何快速删除

    前言 线上有一个,大小为24G左右,没有什么重要的数据,却一直没有优化,导致业务无法进行,在此环境上,所以我们开始了删除之路 步骤 复制表 我这里使用Navicat工具直接复制表,选择仅结构即可。 ln instruction.frm instruction.frm.bak ln instruction.ibd instruction.ibd.bak 删除 DROP TABLE "表格名"; 24G的数据删除大概用了15秒左右 修改名 将我们刚才复制的,名修改为线上正常使用的名即可。 删除物理文件 切记的物理文件不可直接删除,直接操作会导致磁盘IO和CPU利用率升高,影响线上业务可使用truncate来进行删除操作。

    2.1K10编辑于 2024-08-14
  • 来自专栏bisal的个人杂货铺

    探寻删除字段慢的原因

    删除字段为何慢?》的案例中,提到删除一张的字段,产生了很多等待,但是测试环境模拟的现象,看起来和生产,略有区别。 产生在删除字段的上。 关于删字段,有些老师朋友,提供了他们碰见的问题,以及建议, 1. kill删除字段的会话,再次查询会报ORA-12986,需要truncate才能继续,此时要是没备份,就凉凉了。 ? 重新启动数据库,查看test1,报错, ? 4. 继续删除未删完的列 ALTER TABLE test1 DROP COLUMNS continue 5. 执行完毕后再次查询test1,就OK了 2.可以尝试逻辑删除,然后再物理删除,即线上置为unused,等维护窗口,再删除这个字段,如下面这篇文章, https://blog.csdn.net/caimaohua

    1.7K20发布于 2019-01-30
  • 来自专栏DBA随笔

    MySQL删除工具pt-osc​

    // MySQL删除工具pt-osc // 业务场景介绍 早上刚来,有个业务需求,是要变更一张结构,我登陆到服务器上看了看之前的变结构,大概信息如下: 数据量:690w左右, 表字段数量 ,数据同步完后,锁定中间,并删除 5、rename中间为原 6、刷新数据字典,并释放锁 在测试环境上进行了测试,得到的测试结果如下: mysql >>select count 左右,这对线上业务的影响是非常的,而直接进行alter table drop的操作也是一样,会造成线上的服务不可用。 Rename 原到old中,在把临时Rename为原,最后将原删除,将原上所创建的触发器删除。 `_table_name_old` OK. 2019-10-28T14:38:24 Dropping triggers... '#9.删除触发器' DROP TRIGGER IF EXISTS `db_name

    2.7K10发布于 2019-11-06
  • 来自专栏腾讯数据库技术

    如何快速删除InnoDB中的

    背景 在使用MySQL时,如果有的存储引擎是InnoDB,并且系统参数innodb_file_per_table设置为1,即每个文件对应一个独立的空间,当对这些进行DROP TABLE时,有时会发现整个数据库系统的性能会有显著下降 ,包括一些只涉及几行数据的简单SELECT查询和DML语句,而且这些语句和正在删除没有关系。 在删除一个有独立空间的时,需要对buffer pool中所有和这个空间有关的数据页做清理工作,包括从AHI,flush list和LRU list上移除,而在这个清理过程中,会一直持有buffer IO问题 尽管已经有了上述的buffer pool层面的优化,我们在使用MySQL 5.6或者5.7时依然发现删除对系统性能还是会产生显著的影响,说明DROP TABLE还有其他的性能瓶颈,尤其是对于这样一种业务场景 :并发地删除多个大

    10.2K32发布于 2018-06-05
  • 来自专栏bisal的个人杂货铺

    【求助】从删除中存在的记录问题

    A:30万,主键ID B:300万,主键ID 从B删除ID=AID的记录。 SELECT T.ID, ROWNUM RN FROM A) WHERE RN > 0 AND RN <= 50000) AB WHERE A.ID = B.ID); 但执行计划显示COST较大,且瓶颈是B的全扫描 B10多个B(都是300万),串行操作相当于10次B的全扫描,因为磁盘IO性能较差,执行单个DELETE时都可能占据较大CPU,所以不能并行。 是否还有优化空间呢?请高手指点,谢谢!

    8.5K30发布于 2019-01-29
  • 来自专栏小勇DW3

    如何高效的批量删除亿级数据

    最新项目一直出现线上问题,定位原因看到是由于数据过大导致的,现在有个登录,登录游戏玩家每次登录的信息,久而久之,这几个的数据量达到了两亿多条。每天都在上报,采集,由于没有定期删除,数据大量累积。 大概有一年左右的数据,一个的数据已经达到亿级别的。这样算下来,一个的数据至少是几十GB了。因此需要删除过期的数据,暂时保留近三个月的统计数据。 解决方案: 基本每个都有个字段叫create_time或者collect_time的字段,只要删除这个字段三个月之前的数据就ok了 delete from table_name where create_time ,mysql给的buffer好像只有8MB左右(网上搜到的) 后面找到DBA帮忙看,问这个建了索引没有 show index from table_name 通过查看索引,我们在create_time 客户端连接删除,使用的spring jdbcTemplate这个接口 另外,这里一次删除10k还有个原因是,事务太大,影响其他服务的运行 还用到的技术,就是使用线程池来执行sql删除,实现异步删除

    1.8K20发布于 2019-01-03
  • 来自专栏小勇DW3

    如何高效的批量删除亿级数据

    最新项目一直出现线上问题,定位原因看到是由于数据过大导致的,现在有个登录,登录游戏玩家每次登录的信息,久而久之,这几个的数据量达到了两亿多条。每天都在上报,采集,由于没有定期删除,数据大量累积。 大概有一年左右的数据,一个的数据已经达到亿级别的。这样算下来,一个的数据至少是几十GB了。因此需要删除过期的数据,暂时保留近三个月的统计数据。 解决方案: 基本每个都有个字段叫create_time或者collect_time的字段,只要删除这个字段三个月之前的数据就ok了 delete from table_name where create_time ,mysql给的buffer好像只有8MB左右(网上搜到的) 后面找到DBA帮忙看,问这个建了索引没有 show index from table_name 通过查看索引,我们在create_time 客户端连接删除,使用的spring jdbcTemplate这个接口 另外,这里一次删除10k还有个原因是,事务太大,影响其他服务的运行 还用到的技术,就是使用线程池来执行sql删除,实现异步删除

    5K20发布于 2019-01-02
  • 来自专栏Hank’s Blog

    清空删除mysql

    Mysql清空(truncate)与删除中数据(delete)的区别 为某基于wordpress搭建的博客长久未除草,某天升级的时候发现已经被插入了几万条垃圾留言,如果一条条删除那可真是累人的活。 遂考虑直接进入mysql直接清空或者删除中数据。 本文记录一下这2种操作模式的区别,目标对象是wp_comments,里面的所有留言均是垃圾留言,均可删除。 这两者都是将wp_comments中数据清空,不过也是有区别的,如下: truncate是整体删除(速度较快), delete是逐条删除(速度较慢)。 而delete删除以后,Identity依旧是接着被删除的最近的那一条记录ID加1后进行记录。 如果只需删除中的部分记录,只能使用DELETE语句配合where条件。

    10.7K20发布于 2020-09-16
  • 来自专栏GreenLeaves

    SqlServer 循环建删除、更新

    常用于分库分 1、批量删除 declare @outter int declare @inner int declare @tablePrefix varchar(30) declare @tableName delete from '+@tableName+'') set @inner=@inner+1 end set @inner=0 set @outter=@outter+1 end 2、批量建

    3.9K30发布于 2019-01-07
  • 来自专栏腾讯云数据库(TencentDB)

    【腾讯云CDB】如何快速删除InnoDB中的

    背景 在使用MySQL时,如果有的存储引擎是InnoDB,并且系统参数innodb_file_per_table设置为1,即每个文件对应一个独立的空间,当对这些进行DROP TABLE时,有时会发现整个数据库系统的性能会有显著下降 ,包括一些只涉及几行数据的简单SELECT查询和DML语句,而且这些语句和正在删除没有关系。 在删除一个有独立空间的时,需要对buffer pool中所有和这个空间有关的数据页做清理工作,包括从AHI,flush list和LRU list上移除,而在这个清理过程中,会一直持有buffer IO问题 尽管已经有了上述的buffer pool层面的优化,我们在使用MySQL 5.6或者5.7时依然发现删除对系统性能还是会产生显著的影响,说明DROP TABLE还有其他的性能瓶颈,尤其是对于这样一种业务场景 :并发地删除多个大

    4.5K21发布于 2017-12-14
  • 来自专栏DBA 平台和工具

    DROP删除小技巧 - 面试题解答

    在日常工作中,经常会遇到历史从主库上迁移到备份机,以便腾出主库空间,那么如果你直接drop table 后,可能会引起数据库抖动,连接数升高等问题,从而影响业务。 那么用一个小技巧,即可轻松平滑的从主库上删除历史。1、创建一个硬链接,在drop table 时,"欺骗"MySQL已经删除完毕。 我们这里写一个脚本,每次循环1G,休眠2秒,直至删除完。

    33910编辑于 2023-12-02
  • 来自专栏我的Android开源之旅

    !RecyclerView性能提升200%,异步预加载杀器!

    那么今天我就结合之前讲的如何优化onCreateViewHolder的加载时间,讲一讲如何实现onCreateViewHolder的异步预加载,文章末尾会给出示例代码的链接地址,希望能给你带来启发。 其次可能就是想办法让设计师重新设计,将布局中的某些内容删除或者折叠了,对暂不展示的内容使用ViewStub进行延迟加载。 毫无疑问,布局异步加载将为你打开新的世界。 原理 Google官方很早就发现了XML布局加载的性能问题,于是在androidx中提供了异步加载工具AsyncLayoutInflater。 其本质就是开了一个长期等待的异步线程,在子线程中inflate view,然后把加载好的view通过接口抛出去,完成view的加载。 这里的集合类型我选择的是LinkedList,因为我们的缓存需要频繁的添加和删除操作,并且LinkedList实现了Deque接口,具备先入先出的能力。

    2.9K31编辑于 2023-09-01
  • 来自专栏大数据入坑指南

    SqlServer批量删除

    最近需要删除一批曾经用来存放日志的,这些数量很多而且占用了大量的磁盘空间,不得不删除,释放相应的磁盘空间。但是一张一张的手动来删除比较麻烦,在网上找了小技巧,只需要三步,就可以实现批量删除。 第一步 执行sql语句,我的名都是以’DataSyncV1DelaySample或者’DataSyncV2DelaySample开头的,执行下面的语句得到一批drop table的脚本,后面的where 第二步 复制脚本,执行 第三步 删除并不意味着,磁盘空间被释放了,还需要做一些操作,右键相应的数据库->任务->收缩->数据库,点击确定。

    3.5K10发布于 2020-08-20
  • 来自专栏cywhat

    Django删除重建

    前景 可能是在建之后又修改了mysql的配置,导致models中的CharField不支持汉字,调试了很久都不行,各种配置无果后决定删重建 1.注释 1.注释建models 2.注释视图函数view 3.注释form表单 2.删除 1.手动删除 2.drop xxx (需到mysql-shell中执行) 3.更新数据库变化 python3 manage.py makemigrations python3 manage.py migrate --fake 4.去掉注释重新建 python3 manage.py makemigrations python3 manage.py migrate

    1.4K30编辑于 2022-11-22
领券