代码之家  ›  专栏  ›  技术社区  ›  Mohamad

返回一个大查询还是几个小查询更好?

  •  16
  • Mohamad  · 技术社区  · 15 年前

    我用MySQL来存储视频游戏数据。我有书名、平台、标签、徽章、评论、开发者、出版商等的表格。。。

    当有人在观看一个游戏时,最好有一个查询返回与游戏相关的所有数据,还是最好使用多个查询?直观地说,由于我们有评论,将它们包含在同一个查询中似乎毫无意义,因为它们需要分页。但在其他情况下,我不确定是要分解查询还是使用两个查询。。。

    我有点担心性能,因为我现在加入游戏如下表:开发商,出版商,元标签,徽章,标题,流派,子流派,分类。。。要获取游戏徽章(从游戏徽章;多到多到游戏表,多到多到徽章表),我可以执行另一个连接,或运行单独的查询。。。。我不确定什么是最好的。。。。

    3 回复  |  直到 15 年前
        1
  •  11
  •   zerkms    15 年前

    没有灵丹妙药。

    1. 总是尽量只获取必要的数据。
    2. EXPLAIN
        2
  •  15
  •   Explosion Pills    15 年前

    使用一个查询要比使用多个查询快得多,因为查询的启动和查询计划本身的计算成本很高,并且一行运行多个查询会使服务器每次运行速度更慢。显然,您应该只获取实际需要的数据,但查询越少越好。

    tl;dr使用尽可能少的查询。

        3
  •  5
  •   reformed Ezequiel García    8 年前

    这通常是一个处理问题。

    • 如果进行多个查询需要进行数十个或数百个查询,则调用单个查询。

    1. 尽可能地缓存或减轻它,以便很少受到攻击
    2. 尝试在数据库中插入预处理数据以帮助处理当前数据
    3. 作为cron的一部分进行处理,并让应用程序只检索数据
    4. 后退几步,探索不需要处理的其他可能方法