Индексирование Mysql Group BY Query

Привет, У меня есть таблица, называемая train_stop, которая имеет ~ 1 миллион строк.

У меня есть запрос-

SELECT * FROM (SELECT * FROM train_stop where code='XYZ' AND active=1 UNION SELECT * FROM train_stop where code='ABC' UNION SELECT * FROM train_stop where code='STU'...... ) AS t3 GROUP BY t3.number order by departs 

В этом запросе используется только та же таблица train_stop . Сначала я выбираю определенные строки на основе code а затем группирую их по number . Я попытался индексировать разные столбцы, но выше запрос всегда использует using temporary, using filesort . Время выполнения составляет порядка секунд. Скажите, может ли быть лучший способ написать выше стратегию запроса и индексации, чтобы оптимизировать и получить результаты в миллисекундах. Ваша помощь будет очень полезна.

 Create Statement is `CREATE TABLE `train_stop` ( `number` varchar(1000) NOT NULL, `stop_number` int(11) NOT NULL, `code` varchar(1000) NOT NULL, `station name` varchar(1000) NOT NULL, `arrives` time NOT NULL, `departs` time NOT NULL, `halt` varchar(1000) NOT NULL, `pf` varchar(1000) NOT NULL, `day` int(11) NOT NULL, `km` varchar(1000) NOT NULL, `speed` varchar(1000) NOT NULL, `elev` varchar(1000) NOT NULL, `zone` varchar(1000) NOT NULL, `address` varchar(1000) NOT NULL, `active` int(11) DEFAULT '1', KEY `index_1` (`number`(767),`code`(767)), KEY `PIndex` (`number`(767),`stop_number`), KEY `three_columns_idx` (`code`(767),`active`,`departs`), KEY `two_columns_idx` (`code`(767),`active`), KEY `two_columns_group_idx` (`number`(767),`departs`), KEY `one_columns_group_idx` (`departs`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1`