我最近发现并修复了我正在处理的站点中的错误,该错误导致表中有数百万行重复的数据行,即使没有行也将非常大(仍然有数百万行)。我可以轻松找到这些重复的行,并可以运行一个删除查询来杀死它们。问题是试图一次删除这么多行会长时间锁定表,如果可能的话,我想避免这种情况。我可以看到摆脱这些行而又不占用站点(通过锁定表)的唯一方法是:
我只是想知道以前是否有人遇到过这个问题,如果是的话,您如何在不关闭站点的情况下进行处理,希望对用户的干扰最小(如果有的话)?如果我使用2号或其他类似的方法,我可以将这些内容安排在深夜运行,并在第二天清晨进行合并,只需要提前通知用户即可,所以这不是什么大问题。我只是想看看是否有人对更好或更轻松的清理方式有任何想法。
DELETE FROM `table`
WHERE (whatever criteria)
ORDER BY `id`
LIMIT 1000
洗涤,漂洗,重复直到零行受到影响。也许在脚本之间,在两次迭代之间hibernate一到两秒。
发生的事情 由于系统中的错误,上个月的所有数据都已损坏。所以我们不得不手动删除并重新输入这些记录。基本上,我想删除在某段时间内插入的所有行。但是,我发现很难在HBase中扫描和删除数百万行。 可能的解决方案 我找到了两种批量删除的方法: 第一种是设置一个TTL,这样所有过期的记录都会被系统自动删除。但是我想保留上个月之前插入的记录,所以这个解决方案对我不起作用。 第二种选择是使用Java API编
问题内容: 我正在为一个即将到来的Web应用程序进行数据库设计,我想知道是否有人在他们当前的Web应用程序中大量使用mysql,这种设计对于一个可以说80,000个用户的Web应用程序是否有效。 1个DB 在DB中,每个用户的功能都有数百万个表,并且在每个表中可能有数百万行。 尽管此设计非常动态并且可以很好地扩展,但我想知道两件事。 这是当今Web应用程序中的常见设计吗? 如果查询数百万行,这在时
微软Azure文档中没有提到这一点。正式的批量执行器文档只讨论插入和更新选项,而不是删除。有一个建议的java脚本服务器端程序来创建一个存储过程,听起来很不错,但这需要我们输入分区键值。如果我们的文档分布在数百万个逻辑分区上,那就没有意义了。 这是一个非常简单的业务需求。在迁移sql api cosmos集合中的大量数据时,如果我们插入了一些错误的数据,似乎没有选择删除其他数据然后恢复到以前的状态
问题内容: 这是一次冒险。我从上一个问题中的循环重复查询开始,但是每个循环将遍历所有 1700万条记录 , 这意味着将花费数周的时间 (使用MSSQL 2005,运行服务器需要4:30分钟)。我从这个站点和这个帖子中闪现了信息。 并已经到达下面的查询。问题是,对于任何类型的性能,这是否是对1700万条记录运行的正确查询类型?如果不是,那是什么? SQL查询: 问题答案: 看到QueryPlan会有
主要内容:删除单个表中的数据,删除表中的全部数据,根据条件删除表中的数据在 MySQL 中,可以使用 DELETE 语句来删除表的一行或者多行数据。 删除单个表中的数据 使用 DELETE 语句从单个表中删除数据,语法格式为: DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句] 语法说明如下: :指定要删除数据的表名。 子句:可选项。表示删除时,表中各行将按照子句中指定的顺序进行删除。 子句:可选项。表示为删除操作
问题内容: 我有以下表模式,它将user_customers映射到实时MySQL数据库的权限: 我想删除user_customer_id和Permission_id的主键,并保留id的主键。 当我运行命令时: 我收到以下错误: 如何删除列的主键? 问题答案: 如果没有索引,则维护自动增量列会变得太昂贵,这就是为什么要求将自动增量列作为索引的最左侧部分的原因。 您应该在删除键之前删除autoincr