Hi All,
I have a huge issue with a query - it copies the entire table to a tmp table
when executing the query - and it's a big ass table.... Any help and/or
pointers please?
The query:
SELECT COUNT(FlightRoutes.FlightID) AS Count, FlightRoutes.Dep AS Dep,
FlightRoutes.Des AS Des FROM FlightRoutes LEFT JOIN IVAOData ON
FlightRoutes.FlightID=IVAOData.FlightID WHERE IVAOData.TrackerTime >=
UNIX_TIMESTAMP('2010-04-01 00:00:00') AND IVAOData.TrackerTime <=
UNIX_TIMESTAMP('2010-04-30 23:59:50') GROUP BY FlightRoutes.Dep,
FlightRoutes.Des ORDER BY COUNT(FlightRoutes.FlightID) LIMIT 20;
FlightRoutes:
mysql> DESCRIBE FlightRoutes;
+----------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------+------+-----+---------+-------+
| FlightID | char(36) | NO | PRI | NULL | |
| Dep | varchar(5) | NO | MUL | NULL | |
| Des | varchar(5) | NO | | NULL | |
| Route | text | NO | | NULL | |
+----------+------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> SHOW INDEX IN FlightRoutes;
+--------------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name |
Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+--------------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| FlightRoutes | 0 | PRIMARY | 1 | FlightID |
A | 106216 | NULL | NULL | | BTREE | |
| FlightRoutes | 1 | ixAirports | 1 | Dep |
A | 3124 | NULL | NULL | | BTREE | |
| FlightRoutes | 1 | ixAirports | 2 | Des |
A | 26554 | NULL | NULL | | BTREE | |
+--------------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
3 rows in set (0.00 sec)
IVAOData:
mysql> DESCRIBE IVAOData;
+-----------------------+----------------------------------------------------------+------+-----+---------+-------+
| Field |
Type | Null | Key |
Default | Extra |
+-----------------------+----------------------------------------------------------+------+-----+---------+-------+
| EntryID |
char(36) | NO | PRI |
NULL | |
| FlightID |
char(36) | NO | MUL |
NULL | |
| isProcessed |
enum('0','1') | NO | MUL |
NULL | |
| TrackerTime | int(10)
unsigned | NO | MUL | NULL
| |
| CallSign |
varchar(10) | NO | |
NULL | |
| VID | mediumint(6)
unsigned | NO | MUL | NULL | |
| RealName |
tinytext | NO | |
NULL | |
| ClientType |
enum('ACT','PILOT','FOLME') | NO | |
NULL | |
| Latitude |
float(8,5) | NO | |
NULL | |
| Longitude |
float(9,5) | NO | |
NULL | |
| Altitude | smallint(5)
unsigned | NO | | NULL |
|
| GroundSpeed | smallint(5)
unsigned | NO | | NULL |
|
| PlannedAircraft |
varchar(30) | NO | |
NULL | |
| PlannedTASCruise |
varchar(10) | NO | |
NULL | |
| PlannedDepAirport |
varchar(5) | NO | |
NULL | |
| PlannedAltitude |
varchar(5) | NO | |
NULL | |
| PlannedDestAirport |
varchar(5) | NO | |
NULL | |
| Server |
char(3) | NO | |
NULL | |
| Rating |
enum('1','2','3','4','5','6','7','8','9','10','11','12') | NO | |
NULL | |
| Transponder | smallint(4) unsigned
zerofill | NO | | NULL | |
| PlannedFlightType |
enum('','I','V','Y','Z') | NO | |
NULL | |
| PlannedDepTime |
time | NO | |
NULL | |
| PlannedActDepTime |
time | NO | |
NULL | |
| PlannedEnroute |
time | NO | |
NULL | |
| PlannedFuel |
time | NO | |
NULL | |
| PlannedAltAirport |
varchar(5) | NO | |
NULL | |
| PlannedRemarks |
tinytext | NO | |
NULL | |
| PlannedRoute |
text | NO | |
NULL | |
| TimeConnected |
char(14) | NO | |
NULL | |
| ClientSoftwareName |
varchar(10) | NO | |
NULL | |
| ClientSoftwareVersion |
varchar(10) | NO | |
NULL | |
| PlannedAltAirport2 |
varchar(5) | NO | |
NULL | |
| PlannedTypeOfFlight |
enum('','G','M','N','S','X') | NO | |
NULL | |
| PlannedPOB | smallint(3)
unsigned | NO | | NULL |
|
| TrueHeading | smallint(3) unsigned
zerofill | NO | | NULL | |
| OnGround |
enum('0','1') | NO | |
NULL | |
+-----------------------+----------------------------------------------------------+------+-----+---------+-------+
36 rows in set (0.00 sec)
mysql> SHOW INDEX IN IVAOData;
+----------+------------+-------------+--------------+--------------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name |
Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+----------+------------+-------------+--------------+--------------------+-----------+-------------+----------+--------+------+------------+---------+
| IVAOData | 0 | PRIMARY | 1 | EntryID |
A | 13130556 | NULL | NULL | | BTREE | |
| IVAOData | 1 | ixFlightID | 1 | FlightID |
A | 179870 | NULL | NULL | | BTREE | |
| IVAOData | 1 | ixProcessed | 1 | isProcessed |
A | 2 | NULL | NULL | | BTREE | |
| IVAOData | 1 | ixProcessed | 2 | TrackerTime |
A | 1193686 | NULL | NULL | | BTREE | |
| IVAOData | 1 | ixTracker | 1 | VID |
A | 15744 | NULL | NULL | | BTREE | |
| IVAOData | 1 | ixTracker | 2 | PlannedDepAirport |
A | 136776 | NULL | NULL | | BTREE | |
| IVAOData | 1 | ixTracker | 3 | PlannedDestAirport |
A | 177439 | NULL | NULL | | BTREE | |
| IVAOData | 1 | ixTime | 1 | TrackerTime |
A | 875370 | NULL | NULL | | BTREE | |
+----------+------------+-------------+--------------+--------------------+-----------+-------------+----------+--------+------+------------+---------+
8 rows in set (0.00 sec)
mysql> SELECT COUNT(FlightID) FROM FlightRoutes; ## Grows by a few houndred
records per day.
+-----------------+
| COUNT(FlightID) |
+-----------------+
| 106216 |
+-----------------+
1 row in set (0.00 sec)
mysql> SELECT COUNT(EntryID) FROM IVAOData; ## Grows by a few thousand
records per day.
+----------------+
| COUNT(EntryID) |
+----------------+
| 13130747 |
+----------------+
1 row in set (0.00 sec)
--
Regards,
Chris Knipe