Bug #80582 Loose index scans not supported by ndbcluster engine?
Submitted: 2 Mar 2016 9:59 Modified: 12 May 2016 5:18
Reporter: Hartmut Holzgraefe Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S3 (Non-critical)
Version:mysql-cluster-7.4.7 OS:Linux
Assigned to: CPU Architecture:Any

[2 Mar 2016 9:59] Hartmut Holzgraefe
Description:
On a table with a combined key on (col1, col2), with only 100 distinct values in col1, but a few 100K rows total, MyISAM and InnoDB can perform a "Loose Index Scan" on e.g.

  SELECT DISTINCT col1 FROM table;

which leads to only 100 rows being shown in the EXPLAIN plan, together with "Using index for group-by", and Handler_read_next goes up by ~100 when executing the actual query.

When doing this on MySQL Cluster EXPLAIN shows that a full table scan will be performed, and Handler_read_rnd_next goes up by the number of actual rows in the table.

I assume that the internal index operations required for a loose index scan would actually require even more network round trips than the full scan (as I don't remember any NDBAPI operations that would support this in an effective way) ...

How to repeat:
see above

Suggested fix:
Not sure whether this is an actual bug, a feature request, or just needs to be stated in the manual section on "loose index scans" that this might not be supported by all storage engines ...?
[2 Mar 2016 12:11] MySQL Verification Team
Hi Hartmut,

I filed it as documentation bug as you are right, this should be properly documented.

thanks for the submission

take care
Bogdan
[4 May 2016 7:44] Jon Stephens
If you don't know for certain whether it's a software issue or a docs issue, refer it to Dev. I've done so here.