-1
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)) {

      }
}

有人能告诉我为什么以及如何使查询更快吗?

4

2 回答 2

0

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

于 2013-08-10T16:21:56.037 回答
0

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

  1. 避免*,因为它首先查找所有列,然后将它们给出。解决方案 - 手动使用属性名称,例如:

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

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

于 2013-08-10T16:42:53.757 回答