Recently I started moving my MySql to a remote server to offload the load and bandwith. I thought that when a users connect to the site, the MySql data would be transfer directly to the users, but apparently it does not. My bandwith graph spike to 50Mbps extra from the MySql server keep repeatably hitting my server, I assume that the MySql server first transfer back to main site then transfer data to users. Why does it do this or am I just doing it wrong? Is this how remote MySql work? Any help is greatly appreciated. Thanks.
The frontend of your website depends on the mysql server to function. The user doesn't connect to the mysql server directly, your webserver connects to the database to get the database data the user requests. Think of the webserver as the static middleman between the end-user and dynamic data. The user connects to the webserver, then the webserver connects to the database. The webserver then relays the information back to the end user.
If the end-user connected to the database directly you'd likely have a major security issue.