Inexplicably slow query in MySQL

Posted by Brandon M. on Stack Overflow See other posts from Stack Overflow or by Brandon M.
Published on 2013-10-23T01:44:51Z Indexed on 2013/10/23 3:54 UTC
Read the original article Hit count: 170

Filed under:
|

Given this result-set:

mysql> EXPLAIN SELECT c.cust_name, SUM(l.line_subtotal) FROM customer c
    -> JOIN slip s ON s.cust_id = c.cust_id
    -> JOIN line l ON l.slip_id = s.slip_id
    -> JOIN vendor v ON v.vend_id = l.vend_id WHERE v.vend_name = 'blahblah'
    -> GROUP BY c.cust_name
    -> HAVING SUM(l.line_subtotal) > 49999 
    -> ORDER BY c.cust_name;
+----+-------------+-------+--------+---------------------------------+---------------+---------+----------------------+------+----------------------------------------------+
| id | select_type | table | type   | possible_keys                   | key           | key_len | ref                  | rows | Extra                                        |
+----+-------------+-------+--------+---------------------------------+---------------+---------+----------------------+------+----------------------------------------------+
|  1 | SIMPLE      | v     | ref    | PRIMARY,idx_vend_name           | idx_vend_name | 12      | const                |    1 | Using where; Using temporary; Using filesort |
|  1 | SIMPLE      | l     | ref    | idx_vend_id                     | idx_vend_id   | 4       | csv_import.v.vend_id |  446 |                                              |
|  1 | SIMPLE      | s     | eq_ref | PRIMARY,idx_cust_id,idx_slip_id | PRIMARY       | 4       | csv_import.l.slip_id |    1 |                                              |
|  1 | SIMPLE      | c     | eq_ref | PRIMARY,cIndex                  | PRIMARY       | 4       | csv_import.s.cust_id |    1 |                                              |
+----+-------------+-------+--------+---------------------------------+---------------+---------+----------------------+------+----------------------------------------------+
4 rows in set (0.04 sec)

I'm a bit baffled as to why the query referenced by this EXPLAIN statement is still taking about a minute to execute. Isn't it true that this query only has to search through 449 rows? Anyone have any idea as to what could be slowing it down so much?

© Stack Overflow or respective owner

Related posts about mysql

Related posts about sql