What is the best naming convention developers around have been using for defining Record names to maintain uniqueness that can also be searched easily :
foreg: opportunity name : Opportunity name_Account_name_unique_identifier
I'd say the convention you've come up with is pretty solid, you may not even want an opportunity name, it could just be
You could also include the date in there, but that information is available in the system CreatedDate field anyway so may be redundant unless you're using text search specifically.
The only difference I would make over your convention would be to have the account name first so that they get grouped by account when sorted alphabetically—that said, if your opportunity names form a desired grouping then keep the format you have.