How can I protect my data stored in a database on a rented server(dedicated, shared, cloud). Anyone who works for the host company can clone a disk from my computer and steal my data.
If I encrypt the database I will lose performance. One other option I'm considering is to run mysql database out of ram only and encrypt database backups.
Is there any other ways to protect my data on a rented server?
Even if you encrypt your database the hose can still access it. You'll need to store the key somewhere within your site/app so that you have access to the data. The host can then potentially use that key to access the data.
I'm not seeing how running the database in memory helps at all with this. You still need to access the data and the host could do a db dump from the database whether it's running from the drive or from memory.
One option might be to use your own hardware in a co-location type setup where you are the only one who has physical access to your box. There are a lot of disadvantages to this method but if you are serious about wanting to really lock down your data, I think is pretty much your only solution.
That said, is your data valuable enough to warrant someone from one of the major hosting providers snooping through your stuff?