【问题标题】:Array in php mysql queryphp mysql查询中的数组
【发布时间】:2011-10-30 17:09:40
【问题描述】:

当我使用数组 mysql 查询时,它真的很慢。有什么技巧可以加快速度吗?

例如:

  SELECT * 
    FROM posts
   WHERE type IN ('1','2','5')
ORDER BY id ASC

比其他查询花费更长的时间。

【问题讨论】:

  • 索引?只返回您实际需要的列 - 不是全部。
  • 解释一下,看看发生了什么
  • WHERE type=1 OR type=2 OR type=5。你有类型的索引吗?
  • @str: IN 在逻辑上是等价的;使用ORs 没有任何好处
  • IN 是比较运算符函数

标签: php mysql arrays performance


【解决方案1】:

如果typeinteger 类型,则去掉撇号:

WHERE type IN (1, 2, 5)

如果不是 - 将 type 类型更改为 integer

【讨论】:

    【解决方案2】:

    有很多事情可以加快查询速度,我会考虑查找以下内容:

    标准化。也许您的表格结构不是最有效的?

    索引。如果您知道要搜索的内容,这将缩短查询时间。

    【讨论】:

      【解决方案3】:

      EXPLAIN 会告诉您查询缓慢的原因。基于此,您可以对查询或表结构进行调整以解决问题。在这种情况下,像这样使用它:

      EXPLAIN SELECT * FROM posts WHERE type IN (1,2,5) ORDER BY id ASC

      【讨论】:

        【解决方案4】:

        这里你需要看两件事 首先,('1','2','5') 这是字符串而不是整数,应该是 (1,2,5)。 其次,您可以在 type 字段上应用索引。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-04-30
          • 1970-01-01
          • 2012-02-16
          • 2011-03-25
          • 2011-02-07
          • 2013-04-10
          • 2013-06-11
          相关资源
          最近更新 更多