php - 删除MySQL表中的批量数据

标签 php mysql

我有一个 MySQL 数据库表,其中有超过 250000 条记录。现在我想在特定条件下删除大约230000条记录。当我尝试这样做时,无论如何我都无法实现它,因为它一直在完全加载。

我尝试过编写PHP脚本来一一读取数据并将其删除。我还尝试通过删除表来备份数据。但我无法进行备份。我也尝试重新索引,但这也不起作用。

我完全被这个问题困扰,找不到任何方法来解决。

如果您知道有什么方法可以解决这个问题,请帮助我。

非常感谢, 公羊

最佳答案

您需要根据 WHERE 条件中的字段对表建立索引。在您的示例中:

DELETE FROM Participator WHERE EventID = 180; 

索引应位于 EventID 上。使用以下语句添加索引:

ALTER TABLE Participator add index(EventID);

您可以在此处找到有关 mysql 索引以及如何使用它们的更多信息: https://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html

关于php - 删除MySQL表中的批量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22465990/

相关文章:

php - 在成功执行mysql INSERT之后显示空白行

mysql 将 1 个表连接到 2 个其他表

java - PHP 与 Java 服务器通信

php - 从 php 执行 MSSQL 存储过程

MySQL Query order by if null

mysql - 一个表中的哪一行(按某列顺序)对应于另一个表中的一行?

php - 使用后端服务器Android验证Google登录 token ID

php - 如果该文件中有任何错误,如何@include()我的 secret 文件而没有错误文本(当没有文件时)却带有错误文本?

php - 如何在 PHP 中将货币字符串(非标准化输入)添加在一起?

Mysql "select * from"没有返回所有行