具有多个联接,max()和分组依据的慢速MySQL查询

马塞尔·格吕格(MarcelGrüger)

我有一个严重的问题。我们的Intranet越来越慢。主要原因之一似乎是缓慢的mysql查询(它出现在slow-query.log中)。每次打开Intranet站点时都会询问该查询。看起来像这样:

SELECT w.Datetime, w.User_ID, w.Status, e.Lastname
FROM worktimes AS w
INNER JOIN employees AS e ON w.User_ID=e.ID
RIGHT JOIN (SELECT max(Datetime) AS Datetime, User_ID
            FROM worktimes
            WHERE Datetime>".$today." // variable of today 0.00 o'clock
            AND Location='".$llocation['ID']."' // variable of one of 9 locations
            GROUP BY User_ID) AS v
        ON v.User_ID=w.User_ID AND w.Datetime=v.Datetime
ORDER BY e.Lastname;

工作时间表更大一些,最多可容纳20万行(出于测试原因,该行仅需90k)和13列。整个查询经过一个3到9个周期的循环。

有人知道如何使查询更快吗?

编辑:希望这里是EXPLAIN结果。

id  select_type     table       type    possible_keys   key        key_len  ref               rows  Extra
1   PRIMARY         <derived2>  ALL     NULL            NULL       NULL     NULL              44006 Using temporary; Using filesort
1   PRIMARY         w           ALL     NULL            NULL       NULL     NULL              92378 Using where
1   PRIMARY         e           eq_ref  PRIMARY,ID      PRIMARY    4        ais_v1.w.User_ID      1 NULL
2   DERIVED         worktimes   ref     Location        Location   767      const             44006 Using index condition; Using where; Using temporary; Using filesort
里克·詹姆斯

w表需要在上建立索引INDEX(Location, Datetime)这样可以提高性能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有总和,联接和分组依据的Mysql子查询

来自分类Dev

MYSQL查询选择具有相同列和分组依据的

来自分类Dev

使用总和,计数,分组依据和多个左联接MySQL执行查询

来自分类Dev

读取订单非常慢的mysql查询(联接和分组依据)

来自分类Dev

MySQL慢速查询具有2个内部联接

来自分类Dev

MySQL慢速查询具有2个内部联接

来自分类Dev

具有多个联接的MySQL联接查询

来自分类Dev

ActiveRecord:具有“求和”,“合并”,“分组依据”和“选择多个字段”的复杂查询

来自分类Dev

具有内部联接和多个条件的MySQL查询

来自分类Dev

优化SQL分组依据和联接查询

来自分类Dev

优化SQL分组依据和联接查询

来自分类Dev

Linq多个联接和分组依据

来自分类Dev

具有实体和分组依据的Linq查询

来自分类Dev

MySQL总和,以分组依据和联接计数

来自分类Dev

如何通过对表和分组依据的多个和查询来联接2表

来自分类Dev

选择具有左外部联接的查询,并与分组依据求和

来自分类Dev

什么是 sql 查询在内部联接中具有、分组依据

来自分类Dev

Linq查询使用分组依据并具有

来自分类Dev

Linq查询具有分组依据

来自分类Dev

具有多个索引的分组依据

来自分类Dev

具有多个变量的分组依据

来自分类Dev

MySQL分组依据和查询顺序

来自分类Dev

使用联接,分组依据和聚合函数的SQL选择查询

来自分类Dev

如何在mysql中将mysql的“分组依据”,“具有”查询转换为mongodb

来自分类Dev

Postgres分组依据并提取具有多个元素的分组

来自分类Dev

创建具有多个列和联接列的公式查询

来自分类Dev

具有多个联接的MySQL查询的执行效率低下的计划

来自分类Dev

Django查询多个分组依据

来自分类Dev

具有左联接和时间条件的MySQL查询

Related 相关文章

  1. 1

    具有总和,联接和分组依据的Mysql子查询

  2. 2

    MYSQL查询选择具有相同列和分组依据的

  3. 3

    使用总和,计数,分组依据和多个左联接MySQL执行查询

  4. 4

    读取订单非常慢的mysql查询(联接和分组依据)

  5. 5

    MySQL慢速查询具有2个内部联接

  6. 6

    MySQL慢速查询具有2个内部联接

  7. 7

    具有多个联接的MySQL联接查询

  8. 8

    ActiveRecord:具有“求和”,“合并”,“分组依据”和“选择多个字段”的复杂查询

  9. 9

    具有内部联接和多个条件的MySQL查询

  10. 10

    优化SQL分组依据和联接查询

  11. 11

    优化SQL分组依据和联接查询

  12. 12

    Linq多个联接和分组依据

  13. 13

    具有实体和分组依据的Linq查询

  14. 14

    MySQL总和,以分组依据和联接计数

  15. 15

    如何通过对表和分组依据的多个和查询来联接2表

  16. 16

    选择具有左外部联接的查询,并与分组依据求和

  17. 17

    什么是 sql 查询在内部联接中具有、分组依据

  18. 18

    Linq查询使用分组依据并具有

  19. 19

    Linq查询具有分组依据

  20. 20

    具有多个索引的分组依据

  21. 21

    具有多个变量的分组依据

  22. 22

    MySQL分组依据和查询顺序

  23. 23

    使用联接,分组依据和聚合函数的SQL选择查询

  24. 24

    如何在mysql中将mysql的“分组依据”,“具有”查询转换为mongodb

  25. 25

    Postgres分组依据并提取具有多个元素的分组

  26. 26

    创建具有多个列和联接列的公式查询

  27. 27

    具有多个联接的MySQL查询的执行效率低下的计划

  28. 28

    Django查询多个分组依据

  29. 29

    具有左联接和时间条件的MySQL查询

热门标签

归档