ahm*_*med 1 php mysql database optimization query-optimization
注意:编辑:请编辑标题,如果有更好的:)
我的问题是:
我的数据库中有两个表
-----------
| table1 |
|----------|
| id |
|text |
===========
-----------
| table2 |
|----------|
| id |
|text |
===========
Run Code Online (Sandbox Code Playgroud)
table1是600,000条记录
table2是5,000,000条记录!! :)
删除table2中不在table1中的所有记录的最佳方法是什么
我主要是顺便 - 最快的方式,因为我不想等待4个小时来完成这个过程
你有比以下代码更好的东西:
<?PHP
$sql = "select text from table2";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$text = $row["text"];
$sql2 = "select id from table1 where text = '$text'";
$query2 = mysql_query($sql2) or die(mysql_error());
$result2 = mysql_num_rows($query2);
if($result2==0){
$sql3 = "delete from table2 where text = '$text'";
$query3 = mysql_query($sql3) or die(mysql_error());
}
}
?>
Run Code Online (Sandbox Code Playgroud)
谢谢
那么让RDBM处理它呢?
例如
DELETE FROM table2 WHERE text NOT IN (select distinct text from table1)
Run Code Online (Sandbox Code Playgroud)
干杯
PS:在测试前做一些备份......
| 归档时间: |
|
| 查看次数: |
1087 次 |
| 最近记录: |