MySQL: seleccione N filas, pero con solo valores únicos en una columna

Dado este conjunto de datos:

ID  Name            City            Birthyear
1   Egon Spengler   New York        1957
2   Mac Taylor      New York        1955
3   Sarah Connor    Los Angeles     1959
4   Jean-Luc Picard La Barre        2305
5   Ellen Ripley    Nostromo        2092
6   James T. Kirk   Riverside       2233
7   Henry Jones     Chicago         1899

Necesito encontrar a las 3 personas más viejas, pero solo a una de cada ciudad.

Si solo fueran los tres más antiguos, sería ...

Henry Jones / ChicagoMac Taylor / Nueva YorkEgon Spengler / Nueva York

Sin embargo, dado que tanto Egon Spengler como Mac Taylor están ubicados en Nueva York, Egon Spengler se retiraría y la siguiente (Sarah Connor / Los Angeles) entraría.

¿Alguna solución elegante?

Actualizar:

Actualmente una variación de PConroy es la mejor / la solución más rápida:

SELECT P.*, COUNT(*) AS ct
   FROM people P
   JOIN (SELECT MIN(Birthyear) AS Birthyear
              FROM people 
              GROUP by City) P2 ON P2.Birthyear = P.Birthyear
   GROUP BY P.City
   ORDER BY P.Birthyear ASC 
   LIMIT 10;

Su consulta original con "IN" es extremadamente lenta con grandes conjuntos de datos (se abortan después de 5 minutos), pero mover la subconsulta a una ÚNETE lo acelerará mucho. Tomó unos 0,15 segundos durante aprox. 1 mio filas en mi entorno de prueba. Tengo un índice en "City, Birthyear" y un segundo solo en "Birthyear".

Nota: Esto está relacionado con ...

Seleccionando filas únicas en un conjunto de dos posibilidadesConsulta SQL para obtener el último precio.