Question

I'm working on a SaaS project and mysql is our main database. Our applications is written on c# .net and runs under an windows 2003 server.

Considering maintainance, cost, options and performance, which server plattaform can I decide for MySQL hosting, windows or Unix/Linux/Ubuntu/Debian?

The scenario is as following:

The server I run today has a modarate transaction volume. Databases increase 5MB daily and we expect to increase 50MB in couple of months and it is mission critical.

I don't know how big the database is going to be. We rent a VPS to host application and database server.

Most of our queries are simple but our ORM Tool makes constantly use of subqueries. Also we run reports simple and heavy ones. Some them runs after user click, but most runs in order to the queue.

Buy an extra co-lo space will be nice as we got more clients. That's SaaS project after all.

Was it helpful?

Solution

I think you need more information to make an informed decision. It's hard to just pull out a "best" answer based on no specific information.

  • What is your expected transaction volume?
  • How big will the database get?
  • How complex are your queries, ie are they long running or relatively quick?
  • Are you hosting the application on your own server at your own location? If you have to buy extra co-lo space maybe an extra server isn't the best option.
  • How "mission critical" is this database? Ie maybe you need replicated servers to ensure stability.

There is a server sizing tool online at http://www.sizinglounge.com/, so you should check that out. It sounds like your server could be smaller than their smallest tier, but it should be a good place to start.

If this is a mission critical application you need to do some kind of replication to an extra server in case the primary one fails, so you are definitely looking at two systems. This has to be in addition to a good backup plan.

Given that you are uncertain about how big it could get you might just continue renting a server. For your backup one idea would be to look at running MySQL on an Amazon EC2 instance. BTW it is important to have a remote replicated server. If you have two systems next to each other and an environmental problem comes up, they could both be out of commission at the same time. But with a remote copy your options are open to potentially working around it.

If you run a lot of read-only queries locally and have your site hosted somewhere, it might make sense to set up a local replicated database copy to query against. That could potentially improve both your website and local performance quite a bit. Plus it would give you some good piece of mind having a local copy under your control.

HTH, Brandon

OTHER TIPS

When developing, you can use your Windows box to also run a MySQL server. If and when you want to have your DBMS in a separate server it can be in either a Windows or Linux server.

MySql and supporting tools for backup etc probably have more choices in Linux.

There are also 3rd party suppliers who will host your MySQL database on their servers. The benefit is they will handle backups, maintenance etc.

Also: look into phpMyAdmin for use as a great admin tool.

Larry

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top