Т.е. как я понял, сами данные в этих 9 полях записи, уникальными не являются, но их сочетании должно быть уникальным. Тут в голову приходят пара мыслей.
1. Составное уникальный индекс. Но с несколькими миллионами записей это будет тяжеловато, да и если другой пользы от такого индекса нет, то не лучший вариант, пожалуй.
2. Вариант с хешем, сам хеш под индексом. Тут конечно многое зависит от того, какие данные. Я бы постарался даже не md5 заюзать, а crc32 например, но сам индекс сделать составным с каким-то еще данными, чтобы уменьшить вероятность коллизий, но при этом получить выигрыш по скорости, например если объединить интовый айдишник пользователя и интовый crc32.