gpt4 book ai didi

php - 逐行或批量删除

转载 作者:行者123 更新时间:2023-11-30 00:07:04 25 4
gpt4 key购买 nike

我想删除大量数据。该表现在大约有 11207333

但是我有几种方法可以删除它。

将删除的数据约为 300k。我有两种方法可以做到这一点,但不确定哪一种执行得更快。

我的第一个选择:

$start_date     = "2011-05-01 00:00:00";
$end_date = "2011-05-31 23:59:59";
$sql = "DELETE FROM table WHERE date>='$start_date' and date <='$end_date'";
$mysqli->query($sql);
printf("Affected rows (DELETE): %d\n", $mysqli->affected_rows);

第二个选项:

$query = "SELECT count(*) as count FROM table WHERE date>='$start_date' and date <='$end_date'";
$result = $mysqli->query($query);
$row = $result->fetch_array(MYSQLI_ASSOC);
$total = $row['count'];

if ($total > 0) {
$query = "SELECT * FROM table WHERE date>='$start_date' and date <='$end_date' LIMIT 0,$total";
$result = $mysqli->query($query);
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
$table_id = $row['table_id']; // primary key
$query = "DELETE FROM table where table_id = $table_id LIMIT 0,$total";
$mysqli->query($query);

}
}

这个表数据是展示给客户端看的,我怕删除出错影响我的客户端。

我想知道有没有比我更好的方法。

如果你们需要我提供更多信息,请告诉我。

谢谢

最佳答案

在我看来,第一个选项更快。

第二个选项包含循环,我认为它会更慢,因为它会多次循环查找您的表 ID。

如果您没有提供错误的开始和结束日期,我认为这两个选项都是安全的,但我认为选项 1 更快。

是的,我在选项 2 中没有看到任何删除,但我假设您已经记住了它,但使用了循环方法。

关于php - 逐行或批量删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24443898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com