Вместо да вземете един милион реда от базата данни и да направите изчислението в Python, дайте вашия речник на базата данни и накарайте базата данни да направи изчислението и да ви изпрати обратно резултата.
Можете да направите това, като направите заявка, подобна на следната:
SELECT SUM(price * exchange_rate) AS total
FROM sales
LEFT JOIN
(
SELECT 'USD' AS currency, 1.00000 AS exchange_rate
UNION ALL
SELECT 'EUR', 1.32875
UNION ALL
SELECT 'GBP', 1.56718
-- ...
) AS exchange
ON exchange.currency = sales.currency