1) The collation specifies the comparison rules. The size of the database should be irrelevant for this. Performance will depend on the indexing
2)
You should most definately add an index for the primary key as this will dramatically improve performance on a large table like this (without an index the table will be scanned looking for the item - ie to find out that an entry is not present it will check for a match on all 10 million records).
As you are infrequently/never adding/removing entries you will not be modifying the indexes (which could reduce performance)so you could add further indexes (e.g. on name or combined ID/name). However if the ID is unique you will only ever get 1 record returned so other indexes are unnecessary (unless you want to get entries without specifying the ID).
You might also consider using the SDBM module if this is only to be a simple key/value pair (e.g by always accessing via the ID). It is straightforward to tie the database access to a hash table so that access to the SDBM database is controlled as though it is a hash table.
SDBM performance is much faster than MySQL lookups.
This works very well if it is only a key/value pair.