gpt4 book ai didi

php - != 在 sql 中或 != 在 php 中

转载 作者:太空宇宙 更新时间:2023-11-03 10:57:06 27 4
gpt4 key购买 nike

任务:显示除 1 个特定对象外的 10 个对象解决方案:

  1. 从 DB 中获取 11 个对象,然后做这样的事情

    foreach ($products as $product) {
    if($product->getId() != $specificProduct->getId()){
    //展示
    }
    }

  2. 只需在 sql 查询中添加条件 WHERE p.id != :specific_product_id

一些附加信息:我们将 doctrine2 与 mysql 一起使用,因此我们必须预料到一些额外的水合作用时间。我做了一些测试,我对这两种解决方案进行了计时,但我仍然不知道哪种方法更好。

所以,我的测试得到了一些奇怪的结果(得到 100 个不同参数的查询)

  • php = 0.19614
  • dql = 0.16745
  • php = 0.13542
  • dql = 0.15531

也许有人对我应该如何改进测试提出建议

最佳答案

如果您担心水合作用的开销,请记住,在 PHP 代码中执行 != 条件意味着您必须从数据库中获取 数千 不相关、不匹配的行,给它们补水,然后丢弃它们。

仅仅因为获取所有这些不相关的行而浪费的网络带宽代价高昂——如果您像许多应用程序一样每秒执行数百次该查询,则成本更高。

使用 SQL 表达式消除不需要的行通常要好得多,并由引用表上的索引支持。

关于php - != 在 sql 中或 != 在 php 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19460248/

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