Use the logging_userindex table instead of logging

On Sat, Dec 30, 2017 at 12:01 PM Huji Lee <huji.h...@gmail.com> wrote:

> I wrote this query to find all page moves done in fawiki in 2017, and
> determine how many edits the performing user had prior to that page move.
> The query tries to use indexes, as much as I could think of, and yet it
> runs for a very long time (more than 20 min, at which point it gets killed).
>
> Any ideas on how to further optimize this query is appreciated!
>
> Thanks,
> Huji
>
>
> use fawiki_p;
> select
>   log_id,
>   log_timestamp,
>   log_user,
>   log_user_text,
>   log_title,
>   log_comment,
>   log_page,
>   page_namespace,
>   case when ug_group = 'bot' then 1 else 0 end as user_is_bot,
>   (
>     select count(*)
>     from revision_userindex
>     where
>       rev_user = log_user
>       and rev_timestamp < log_timestamp
>   ) as rev_count_before_move
> from logging
> join page
>   on page_id = log_page
> left join user_groups
>   on log_user = ug_user
>   and ug_group = 'bot'
> where log_action = 'move'
> and log_timestamp > '20170101000000'
> _______________________________________________
> Wikimedia Cloud Services mailing list
> Cloud@lists.wikimedia.org (formerly lab...@lists.wikimedia.org)
> https://lists.wikimedia.org/mailman/listinfo/cloud
_______________________________________________
Wikimedia Cloud Services mailing list
Cloud@lists.wikimedia.org (formerly lab...@lists.wikimedia.org)
https://lists.wikimedia.org/mailman/listinfo/cloud

Reply via email to