Unión como sub consulta MySQL

Estoy queriendo optimizar una consulta usando una unión como una sub consulta. Aunque no estoy realmente seguro de cómo construir la consulta. Estoy usando MYSQL 5

Aquí está la consulta original:

SELECT  Parts.id 
FROM    Parts_Category, Parts 
    LEFT JOIN Image ON Parts.image_id = Image.id 
WHERE 
( 
    (
        Parts_Category.category_id = '508' OR 
        Parts_Category.main_category_id ='508'
    ) AND 
    Parts.id = Parts_Category.Parts_id 
) AND 
Parts.status = 'A' 
GROUP BY 
    Parts.id 

Lo que quiero hacer es reemplazar esto( (Parts_Category.category_id = '508' OR Parts_Category.main_category_id ='508' ) parte con la unión de abajo. De esta manera puedo eliminar la cláusula GROUP BY y usar índices de columna recta que deberían mejorar el rendimiento. Las tablas de categorías de partes y partes contienen medio millón de registros cada una, por lo que cualquier ganancia sería grande.

(
    SELECT * FROM
    (
        (SELECT Parts_id FROM Parts_Category WHERE category_id = '508') 
        UNION 
        (SELECT Parts_id FROM Parts_Category WHERE main_category_id = '508')
    )
    as Parts_id
)

¿Alguien puede darme una pista sobre cómo reescribirlo? Lo he intentado durante horas pero no puedo hacerlo porque solo soy bastante nuevo en MySQL.

Respuestas a la pregunta(1)

Su respuesta a la pregunta