【问题标题】:limit 1 on unique php mysql queries?对唯一的 php mysql 查询限制 1?
【发布时间】:2010-11-26 20:05:14
【问题描述】:

我很好奇,在一个文档中我读到它建议对所有查询使用限制 1(如果可用),包括索引列和唯一列。使用 WHERE uniqueCol = val; 时,写入限制 1 是否真的有助于查询? ?

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    不,在这些情况下,添加“限制 1”无助于加快您的代码速度。相反,人们这样做的通常原因是作为“保护”因素。这有两种情况可以帮助您:

    • 有时,根据您的数据库设计,您可能认为只有 1 个结果,但如果您选择的列实际上不是唯一列,出于某种奇怪的原因,您可能会得到两个如果未保持数据库完整性,则返回结果。我见过程序员因此在这种情况下使用限制 1,只是为了确保无论如何,当他们只期望返回 1 个结果时,他们只能得到 1 个结果,因此,它不会导致代码失败。

    • 还有安全性。我还看到人们宣扬在查询中设置限制 1 的想法,以使 SQL 注入攻击更难以非常有效。这个想法是,如果有人确实设法进行 SQL 注入,那么他们只会得到“1 个结果”的价值。现在的问题是,在实践中,这很少奏效,因为许多 SQL 注入攻击最终会忽略“行的其余部分”数据。

    那么,最后呢?把它放在那里当然不会伤害你。但是,你应该总是这样做并没有一个充分的理由。事实上,我很少自己做,只是因为你可能说服自己的好处是微乎其微的。

    【讨论】:

      【解决方案2】:

      没有。

      【讨论】:

        【解决方案3】:

        否:没有必要将单例集合限制为只有一个元素。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-07
          • 1970-01-01
          • 2014-06-22
          相关资源
          最近更新 更多