[rt-users] query problem after 3.4.5 -> 3.6.4 upgrade

Ruslan Zakirov ruz at bestpractical.com
Mon Jul 23 13:45:10 EDT 2007


Do I understand right that the query is like "Requestor.EmailAddress =
'xxx' OR Status = 'new'  OR Status = 'open'"?
* Note all binary operators (aggregators) are ORs.


On 7/23/07, Brian Kerr <kerrboy at gmail.com> wrote:
> Hi,
>
> This ticket system has been upgraded from 2.0.12 -> 3.4.5 -> 3.6.4.
> Mysql 4.1.22, Centos 4.4, apache 2.0.52, mod_fastcgi.
>
> When doing a search by requestor/owner email address now, we are
> getting a nasty query produced.  Here are the details of the query.
> Let me know if you need any more information.
>
> Thanks,
> Brian
>
> # Query_time: 621  Lock_time: 0  Rows_sent: 1  Rows_examined: 420186151
> SELECT COUNT(DISTINCT main.id) FROM Tickets main CROSS JOIN Users
> Users_3 JOIN Groups Groups_1  ON ( Groups_1.Domain = 'RT::Ticket-Role'
> ) AND ( Groups_1.Type = 'Requestor' ) AND ( Groups_1.Instance =
> main.id ) LEFT JOIN CachedGroupMembers CachedGroupMembers_2  ON (
> CachedGroupMembers_2.MemberId = Users_3.id ) AND (
> CachedGroupMembers_2.GroupId = Groups_1.id )  WHERE (main.Status !=
> 'deleted') AND ( ( Users_3.EmailAddress LIKE '%username%' AND
> CachedGroupMembers_2.id IS NOT NULL )  OR main.Status = 'new' OR
> main.Status = 'open') AND (main.Type = 'ticket') AND (main.EffectiveId
> = main.id);
>
> mysql> explain SELECT COUNT(DISTINCT main.id) FROM Tickets main CROSS
> JOIN Users Users_3 JOIN Groups Groups_1  ON ( Groups_1.Domain =
> 'RT::Ticket-Role' ) AND ( Groups_1.Type = 'Requestor' ) AND (
> Groups_1.Instance = main.id ) LEFT JOIN CachedGroupMembers
> CachedGroupMembers_2  ON ( CachedGroupMembers_2.MemberId = Users_3.id
> ) AND ( CachedGroupMembers_2.GroupId = Groups_1.id )  WHERE
> (main.Status != 'deleted') AND ( ( Users_3.EmailAddress LIKE
> '%username%' AND CachedGroupMembers_2.id IS NOT NULL )  OR main.Status
> = 'new' OR main.Status = 'open') AND (main.Type = 'ticket') AND
> (main.EffectiveId = main.id);
> +----+-------------+----------------------+--------+---------------------------+------------+---------+--------------------------------+-------+--------------------------+
> | id | select_type | table                | type   | possible_keys
>         | key        | key_len | ref                            | rows
>  | Extra                    |
> +----+-------------+----------------------+--------+---------------------------+------------+---------+--------------------------------+-------+--------------------------+
> |  1 | SIMPLE      | Users_3              | index  | NULL
>         | Users4     |     121 | NULL                           |
> 1609 | Using index              |
> |  1 | SIMPLE      | Groups_1             | ref    | Groups1,Groups2
>         | Groups2    |      65 | const                          |
> 10626 | Using where; Using index |
> |  1 | SIMPLE      | main                 | eq_ref |
> PRIMARY,Tickets4,Tickets5 | PRIMARY    |       4 |
> rt3.Groups_1.Instance          |     1 | Using where              |
> |  1 | SIMPLE      | CachedGroupMembers_2 | ref    |
> DisGrouMem,GrouMem        | DisGrouMem |      10 |
> rt3.Groups_1.id,rt3.Users_3.id |     1 | Using where; Using index |
> +----+-------------+----------------------+--------+---------------------------+------------+---------+--------------------------------+-------+--------------------------+
> 4 rows in set (0.00 sec)
> _______________________________________________
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
>
> Community help: http://wiki.bestpractical.com
> Commercial support: sales at bestpractical.com
>
>
> Discover RT's hidden secrets with RT Essentials from O'Reilly Media.
> Buy a copy at http://rtbook.bestpractical.com
>


-- 
Best regards, Ruslan.



More information about the rt-users mailing list