can two cloud infrastructures connect
Assuming your definition of "connect" is that the two clouds can route IP traffic between each other, then in the vast majority of circumstances, the answer is: yes, of course.
Mere IP connectivity, though, does not a stable infrastructure make.
what is the best practice for doing so?
What's the "best practice" for building a car? How about for writing a book? Tough questions, aren't they?
"Best Practice" isn't really applicable here, as there are million ways in which multi-cloud, distributed deployments could be architected. In a nutshell, it completely depends on your specific application.
what will be the performance implications?
Well, database query performance is going to be horrible.
is it better to have my entire solution on one cloud?
Again, this is completely subjective. Depends on your needs and your application architecture.
Generally speaking (due to performance impacts of splitting your application and db layers between providers), people will choose one single provider to host the application - one that will provide the best functionality match to the application requirements.
You probably ought to list out all of your requirements and then evaluate several different providers.