【问题标题】:Find('first'), Find('count'), or Field('id')...Which is faster?Find('first')、Find('count') 或 Field('id')...哪个更快?
【发布时间】:2013-06-24 12:43:05
【问题描述】:

在速度方面什么更好……

我正在尝试确定用户是否已将某个 URL 添加到他们的快捷方式列表中。如果他们添加了 URL,页面上将有一个链接,可以从快捷方式中删除该页面,否则他们可以将其添加到快捷方式中,以便通过下拉菜单快速访问。不幸的是,我需要在每次页面加载时进行此检查,因此代码在我的 AppController 中。我想尽我所能加快速度。我不想缓存这个。

在将“字段”限制为“id”、find('count')field('id') 时执行find('first') 会更快吗,其中任一语句的条件都是'URL' => $this->here。应该只返回 1 或 0 个结果。

【问题讨论】:

  • 没关系。如果您不在单个页面上使用它们 100000 次,它们的速度几乎相同(我希望您不要^^)。只需使用在处理方面最合适的一种。如果需要计数,请使用计数,如果需要整条记录,请先使用,如果您只需要单个字段,请使用字段。
  • 谢谢。我会坚持计数。

标签: mysql performance cakephp cakephp-2.2


【解决方案1】:

假设您的表已正确编入索引,您可能看不到任何差异。根据@mark 的评论,使用适合您需要的任何一个。

使用哪个逻辑应该是您主要关心的问题。

如果您只是想查看 如果有一个,那么使用 field 最有意义,因为它是限制 1 并且只返回一个字段.

如果您想知道有多少,那么您需要count

如果你想知道如果有一个,并检索它的数据,那么 firstexists 是路要走。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-02
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 2020-12-26
    • 2022-01-21
    相关资源
    最近更新 更多