使用where子句时,mysql select query非常慢

时间:2013-08-10 16:20:47

标签: php mysql mysqli

if ($result = mysqli_query($link, "SELECT * FROM `users`")) {
      while ($row = mysqli_fetch_assoc($result)) {

      }
}

当我使用上面的代码查询工作正常..

但是当我使用下面的代码时,mysql非常慢。

if ($result = mysqli_query($link, "SELECT * FROM `users` WHERE name IS NULL")) {
      while ($row = mysqli_fetch_assoc($result)) {

      }
}

有人可以告诉我为什么以及如何更快地进行查询?

2 个答案:

答案 0 :(得分:0)

您需要在name列上添加索引以加快速度。

答案 1 :(得分:0)

有很多方法可以让查询运行得更快。

  1. 首先查看所有列时避免使用*,然后将其排除。 解决方案 - 手动使用属性名称,例如:

    Select `name`, `age`, `XYZ` from `users` where `name` IS NULL
    
  2. 在查询中使用INDEX

  3. 使用EXPLAIN找出可以使用的索引以及实际使用的索引。如有必要,请创建适当的索引。