Hi,
With Kyle, I have reviewed your queries and your hoster's MySQL server settings as well.
Your hoster's MySQL server comes with default configuration, not optimized for website services:
Everything is very much too small, so that this webserver spends a lot of time doing disk accesses which would be not needed if enough RAM would be allocated to buffers.
- number of open tables
- innodb buffers and log sizes
- myisam query caches
- join buffers, sort buffers,
everything is tiny instead of well-dimmensioned.
Just to give you an order of magnitude: Over 1 million queries had to use disk instead of RAM in the past 7 days.
With so little RAM, it's virtually impossible for any of your queries on large databases to work fine.
Please ask your hoster to review his mysql server configuration at host level. There are many documents on the internet and MySQL consultants that can help them for that. If your hoster doesn't want to configure properly your server, change hoster. Such a setting is no good sign of a good hoster...
Thanks for your time spent in this issue. I would consider also change hosting server, maybe you can offer an efficient solution? You see what I need, maybe you can suggest me a solution... Anyway I have a doubt, because your servers are out of the European Community, so I could have some problems for that for privacy laws if I store user data in servers outside the EU...
Privacy laws are by country. There are EU-wide regulations, but each country has its own. Swiss ones are among the most stringent of the planet, that's why many large companies like yahoo host here.
So if your site has sensitive information limited to your country, best is to find a good (not having "cheap" in the title of his page (or "budget")) with his servers really in your country (often they have servers elsewhere).
But first try to convince your hoster: configuring MySQL will allow his host to have a much smaller load factor, so it'll save him lots of server-money too.