代码之家  ›  专栏  ›  技术社区  ›  Evernoob

如何正确测试查询性能

  •  1
  • Evernoob  · 技术社区  · 16 年前

    "UPDATE tbl_name SET enabled = 1 WHERE ID IN (" . $IDs . ")";
    

    "UPDATE tbl_name SET enabled = 1 WHERE ID = " . $IDs;
    

    如果只传递一个ID。

    4 回复  |  直到 16 年前
        1
  •  1
  •   inkredibl    16 年前

    if (is_array($id)) $id = implode(',', $id);
    $query = 'UPDATE table SET marked = 1 WHERE id IN ('.$id.')';
    

    这样,您将得到以下示例查询之一:

    UPDATE table SET marked = 1 WHERE id IN (15);
    UPDATE table SET marked = 1 WHERE id IN (21,12,15,16);
    

    如果所有值都是常量,则根据expr的类型对其进行求值并排序。然后,使用二分查找完成对项目的搜索。这意味着,如果IN值列表完全由常量组成,则IN非常快。

        2
  •  1
  •   Sabeen Malik    16 年前

        3
  •  0
  •   Valentin Golev    16 年前

    您可以尝试使用随机ID在大循环中运行这两个查询

        4
  •  0
  •   DanTdr    16 年前

    "UPDATE tbl_name SET enabled = 1 WHERE ID = " . $IDs;
    

    s o proccess and then you will know which one is the best.. for a single id the preformance is the same.. but i don