MySQL dinámico-pivote

Tengo una tabla de partes de productos como esta:

Partes

part_id      part_type      product_id
--------------------------------------
1            A              1
2            B              1
3            A              2
4            B              2
5            A              3
6            B              3

y quiero una consulta que devuelva una tabla como esta:

product_id      part_A_id      part_B_id
----------------------------------------
1               1              2
2               3              4
3               5              6

En su implementación real habrá millones de partes de productos.