代码之家  ›  专栏  ›  技术社区  ›  Jimmie Lin

每页最大SQL查询数[已关闭]

  •  9
  • Jimmie Lin  · 技术社区  · 16 年前

    基本上我正在开发一个相当大的web应用程序(PHP),它使用 CakePHP . 现在它正在开发中,数据库中的一些东西非常复杂,因此需要进行大量查询才能显示页面(大约7-25个查询)。

    最大限度 ,也就是说,某种程度上表示“您可能做错了什么,应该进行优化”,即每页应该执行的SQL查询数。我现在已经建立了一个非常简单的缓存系统,它可以将单个用户运行的查询减少到大约5个,持续15秒。

    经常运行25个查询吗?我应该停止开发(我有足够的时间)一段时间,重构代码,删除不使用的SQL查询,并花时间改进这部分的性能吗?

    事实上 不影响服务器(即共享宿主环境)的每页运行的查询数的最大值?

    谢谢。

    4 回复  |  直到 13 年前
        1
  •  7
  •   recursive    16 年前

    对数据库的总点击量也与页面浏览量成正比。因此,如果每页的页面视图*查询数超过了数据库的容量,那么就有问题了。显然,不同站点之间的流量差别很大,数据库容量也是如此,所以确实不可能有一个目标。

        2
  •  8
  •   ircmaxell    16 年前

    跑100 SELECT name FROM foo WHERE id = 1 LIMIT 1 将比运行以下1项要好得多:

    SELECT *
        FROM foo AS a
        JOIN bar AS b
        JOIN car AS c
        WHERE a.col LIKE '%f%' OR b.col LIKE '%b%' OR c.col LIKE '%b%'
    

    所以不要担心这个数字,除非它是荒谬的(超过100是很高的。几千是荒谬的)。。。别忘了你可以启用MySQL的查询缓存。。。因此,即使每秒执行大量查询,只要没有大量更新,大多数更新都将直接缓存结果。。

        3
  •  4
  •   Mike    16 年前

    如前所述,没有幻数。变量太多了。例如数据库服务器规格。显然,服务器越好,可以运行的查询就越多。

        4
  •  0
  •   DanP    16 年前

    一种可能更简单、几乎同样有效的优化方法是在可能的情况下对查询进行批处理。这样,您可以减少到数据库服务器的往返次数,同时保持现有逻辑(大部分)完好无损。