And this is why you need to go back and look at how relational database structure works. Your fundamental database design is not right, so if you want to scale this system, you need to know how that works before you proceed.
To answer your very first post:
The key, or more appropriately the primary key, is the column (or combination of columns, known as a composite key) that uniquely identifies a row of data in your table.
If I recall correctly the use of a composite key can be a bit dodgy with regard to the "ON DUPLICATE KEY" directive in MySQL, but that may have been fixed in more recent versions. Also, I am not sure the directive is ANSI standard, so if you wanted to move this database to Oracle or MS SQL Server later, you wouldn't be able to without rewriting much of the code, just saying.
In your case, the currency code, or the currency name can be the unique key. Traditionally the currency code would be used.
In this instance, when doing an insert using the "ON DUPLICATE KEY" directive, where the insert statement results in a duplicate key, an update will occur instead.
I haven't read your links regarding the reason for the frequency of updates, but I see no reason to until you get your database structure correct first given your objectives. You need to figure that out within the constraints of good practice, which seems sadly lacking here given the replies to your issue to date.