I'm trying to simply 'union all' the rows of 12 tables. All tables combined , have 115 rows. However, if I run the query below I get the following when using 'explain' as well as an entry in the mysql-slow.log when set to 'log-queries-not-using-indexes' :
Rows_sent: 115 Rows_examined: 1008
I'm somewhat mystified how mysql is examining 1008 rows when all it has to do is just join(well, 'union') all the rows together. Any hints or pointers would be much appreciated.
Here's the query:
(SELECT id, var_lng_1, 0 as tbl_col FROM tbl1 )
UNION ALL
(SELECT id, var_lng_1, 1 as tbl_col FROM tbl2 )
UNION ALL
(SELECT id, var_lng_1, 2 as tbl_col FROM tbl3 )
UNION ALL
(SELECT id, var_lng_1, 3 as tbl_col FROM tbl4 )
UNION ALL
(SELECT id, var_lng_1, 4 as tbl_col FROM tbl5 )
UNION ALL
(SELECT id, var_lng_1, 5 as tbl_col FROM tbl6 )
UNION ALL
(SELECT id, var_lng_1, 6 as tbl_col FROM tbl7 )
UNION ALL
(SELECT id, var_lng_1, 7 as tbl_col FROM tbl8 )
UNION ALL
(SELECT id, var_lng_1, 8 as tbl_col FROM tbl9 )
UNION ALL
(SELECT id, var_lng_1, 9 as tbl_col FROM tbl10 )
UNION ALL
(SELECT id, var_lng_1, 10 as tbl_col FROM tbl11 )
UNION ALL
(SELECT id, var_lng_1, 11 as tbl_col FROM tbl12 );
Any input much appreciated
PS: (just in case this would make a difference) all id's are primary,tiny_int(3), auto_increment columns. I also tried the same query just with the id's (i.e 'select id from....' but that made no difference :(
Full explain output:
[id] => 1
[select_type] => PRIMARY
[table] => tbl1
[type] => ALL
[possible_keys] =>
[key] =>
[key_len] =>
[ref] =>
[rows] => 7
[Extra] =>
[id] => 2
[select_type] => UNION
[table] => tbl2
[type] => ALL
[possible_keys] =>
[key] =>
[key_len] =>
[ref] =>
[rows] => 18
[Extra] =>
[id] => 3
[select_type] => UNION
[table] => tbl3
[type] => ALL
[possible_keys] =>
[key] =>
[key_len] =>
[ref] =>
[rows] => 8
[Extra] =>
[id] => 4
[select_type] => UNION
[table] => tbl4
[type] => ALL
[possible_keys] =>
[key] =>
[key_len] =>
[ref] =>
[rows] => 10
[Extra] =>
[id] => 5
[select_type] => UNION
[table] => tbl5
[type] => ALL
[possible_keys] =>
[key] =>
[key_len] =>
[ref] =>
[rows] => 11
[Extra] =>
[id] => 6
[select_type] => UNION
[table] => tbl6
[type] => ALL
[possible_keys] =>
[key] =>
[key_len] =>
[ref] =>
[rows] => 14
[Extra] =>
[id] => 7
[select_type] => UNION
[table] => tbl7
[type] => ALL
[possible_keys] =>
[key] =>
[key_len] =>
[ref] =>
[rows] => 10
[Extra] =>
[id] => 8
[select_type] => UNION
[table] => tbl8
[type] => ALL
[possible_keys] =>
[key] =>
[key_len] =>
[ref] =>
[rows] => 6
[Extra] =>
[id] => 9
[select_type] => UNION
[table] => tbl9
[type] => ALL
[possible_keys] =>
[key] =>
[key_len] =>
[ref] =>
[rows] => 3
[Extra] =>
[id] => 10
[select_type] => UNION
[table] => tbl10
[type] => ALL
[possible_keys] =>
[key] =>
[key_len] =>
[ref] =>
[rows] => 2
[Extra] =>
[id] => 11
[select_type] => UNION
[table] => tbl11
[type] => ALL
[possible_keys] =>
[key] =>
[key_len] =>
[ref] =>
[rows] => 6
[Extra] =>
[id] => 12
[select_type] => UNION
[table] => tbl12
[type] => ALL
[possible_keys] =>
[key] =>
[key_len] =>
[ref] =>
[rows] => 20
[Extra] =>
[id] =>
[select_type] => UNION RESULT
[table] => <union1,2,3,4,5,6,7,8,9,10,11,12>
[type] => ALL
[possible_keys] =>
[key] =>
[key_len] =>
[ref] =>
[rows] =>
[Extra] =>