我的应用程序中有以下查询:
SELECT a.*, f.*
FROM flights_database f
JOIN airports a ON f.airport = a.airportNameClean
WHERE f.flight_date > CURDATE()-30
AND (f.flight_number LIKE 'New York%' OR f.airport LIKE 'New York%' OR f.airline LIKE 'New York%' OR a.iata = 'New York')
ORDER by f.flight_date DESC, f.scheme DESC
LIMIT 200
执行时间过长(超过 2 秒)。我有关于航班日期、航班号、机场、航空公司和计划的索引。
尽管如此,EXPLAIN 仍报告以下内容:
1
SIMPLE
f
ALL
flight_number,airport,airline,flight_date,auto_suggest,suggest_daily,flight_search
NULL
NULL
NULL
1408614
Using where; Using filesort
1
SIMPLE
a
ref
PRIMARY,airportNameClean
airportNameClean
107
my_db.f.airport
1
Using where
我必须创建哪些索引,我缺少什么?