I was benchmarking a few of my queries tonight and I noticed that two queries had different query plans based on table type.

Here's the "broken" query:

mysql> EXPLAIN SELECT * FROM FOO_LINK_MEMORY_TEST GROUP BY TARGET_NODE_ID\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: FOO_LINK_MEMORY_TEST
         type: index
possible_keys: NULL
          key: TEST
      key_len: 18
          ref: NULL
         rows: 1000
        Extra:
1 row in set (0.00 sec)

Note no index is used.


mysql> EXPLAIN SELECT * FROM FOO_LINK_INNODB_TEST GROUP BY TARGET_NODE_ID\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: FOO_LINK_INNODB_TEST
         type: index
possible_keys: NULL
          key: TARGET_NODE_ID
      key_len: 9
          ref: NULL
         rows: 1011
        Extra:
1 row in set (0.00 sec)

...

and here it uses TARGET_NODE_ID. The only difference is that I created an INNODB table and inserted the columns in the memory table into the INNODB table.

I'm trying to follow the instructions here:

http://dev.mysql.com/doc/mysql/en/loose-index-scan.html

To get decent GROUP BY performance. Is this a bug? Is there a workaround?

Kevin A. Burton, Location - San Francisco, CA
      AIM/YIM - sfburtonator,  Web - http://www.feedblog.org/
GPG fingerprint: 5FB2 F3E2 760E 70A8 6174 D393 E84D 8D04


Reply via email to