我的数据库中有一个服务器列表,以及一个服务器事件表。我想查询服务器以及它们上次重新启动的时间。
SELECT
s.server_name,
e.event_message,
e.timestamp as last_restart
FROM servers s
LEFT JOIN events e ON e.id=(
SELECT e.id
FROM events e
WHERE
(e.`server_id`=s.id) AND
(e.`event-type`='restart')
ORDER BY e.timestamp
LIMIT 1
);
查询有效,但当服务器大于18时,它很慢:
这些数字似乎与事件表的大小成比例增长。如果我将表格中的服务器删除回16,则查询速度会再次快。
问题
注意: