【发布时间】:2013-07-12 18:18:02
【问题描述】:
我有一段可爱的代码要优化:
$result = mysql_query("select day from cities where name='St Charles'");
$row = mysql_fetch_assoc($result);
$day = $row['day'];
$result = mysql_query("select id,durability from goods_meta_data");
while($row = mysql_fetch_assoc($result)) {
mysql_query("delete from possessions where day_created<" . ($day-$row[durability]) . " and good_id=" . $row['id']);
}
如果所有权已过期,它会从表 'possessions' 中删除行。所有权是否过期由表“商品”和“城市”中的值确定。 具体来说,商品的使用年限=day-day_created,如果商品的使用期限超过其耐用性,则该商品过期。 (每一种物品都是一种物品,每种物品都有独特的耐久度。)
此代码有效,但我觉得这可以在单个查询中完成。 对 mysql 服务器的延迟特别大,因此在较少的查询中执行此操作会非常有益。
我该怎么做?有什么想法吗?
另外,如果您能向我指出任何有用的资源,我可以从中了解如何以这种方式更好地利用关系数据库,这将很有帮助。
【问题讨论】:
-
您的第一个查询总是返回一个结果吗?
-
是的,它总是返回一个结果。
标签: php mysql query-optimization