Guest Author - Lisa Shea
If you're ramping up your website's database usage, you often go with a hosting plan that lets you have shared access to a MySQL or MS-SQL database.
The good side of this situation is that someone else is handling all of the SQL management for you. They are allocating space for the tables, backing up the system, managing the disk structure, and paying the software fees.
Because you do not have direct access to the database system, you can only make your table designs and changes remotely. Usually I would use Access to do this - i.e. tell Access to connect to the remote database and then create the tables and indices from afar. There are other tools you can buy to do this remote management, including PowerBuilder.
The bad side of this situation is that you cannot actually set anything up the way you might want it to be set up. If the hosting company is clueless about database design and is just doing this to make money, they could set the database up in a way that it runs VERY slowly. They could think they are backing up your data - but when you ask for a restore, they might say "Ooooops!" I've had that happen at two different hosting companies.
Also, in a shared database situation, you are in fact sharing resources with other users. If someone else has a high-intensity database operation, your queries might run really slowly despite your best efforts to optimize. You are fully at the mercy of what the other sharers are doing.
Using a shared database might be a reasonable solution while your site is growing, but if your site does well, you should think about moving to your own dedicated database as quickly as you can.