sql – 从包含数百万条记录的表中删除
发布时间:2020-05-28 18:16:18 所属栏目:MsSql 来源:互联网
导读:我试图找到一种方法在InnoDB表上进行条件DELETE,其中包含数百万条记录,而不会锁定它(因此不会使网站失效). 我试图在mysql.com上找到信息,但无济于事.关于如何进行的任何提示? 我不认为没有锁定就可以删除.也就是说,我不认为锁定您要删除的记录是一个问题.什
|
我试图找到一种方法在InnoDB表上进行条件DELETE,其中包含数百万条记录,而不会锁定它(因此不会使网站失效). 我试图在mysql.com上找到信息,但无济于事.关于如何进行的任何提示? 解决方法我不认为没有锁定就可以删除.也就是说,我不认为锁定您要删除的记录是一个问题.什么问题是锁定其他行.我在这里找到了一些关于该主题的信息:http://dev.mysql.com/doc/refman/5.0/en/innodb-locks-set.html 我建议的是尝试做一百万次单行删除.我认为如果你在一次交易中做所有这些,性能不应该太大.所以你会得到类似的东西: START TRANSACTION; DELETE FROM tab WHERE id = 1; .. .. DELETE FROM tab WHERE id = x; COMMIT; 您可以通过执行类似的操作来生成所需的语句 SELECT CONCAT('DELETE FROM tab WHERE id = ',id)
FROM tab
WHERE <some intricate condition that selects the set you want to delete>
所以优于这种方法而不是做: DELETE FROM tab WHERE <some intricate condition that selects the set you want to delete> 在第一种方法中,您只能锁定要删除的记录,而在第二种方法中,您可能会遇到锁定其他记录的风险,这些记录恰好与您要删除的行在同一范围内. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql – 是否可以在每个记录标签上使用PG序列?
- SQL Server 索引结构及其使用(一)--深入浅出理解索引结构
- 为什么SQL id序列不同步(特别是使用Postgres)?
- 在SQL中更新n个随机行
- SQL Server 一列保存多个ID(将多个用逗号隔开的ID转换成用逗
- 如何从T-SQL中的字符串中删除扩展的ASCII字符?
- Varchar(max)列不允许是SQL Server中的主键
- sql-server-2008 – SQL Server 2008 PCI合规性?与PCI相关
- travis-ci – 如何使用自定义数据库凭据设置Travis CI和pos
- sql编程工具Sql Prompt下载及安装破解图文教程
