views:

102

answers:

2

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.

A: 

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

Brandon Peterson
Building a Linux server is much cheaper than windows server and tecnically there's no problem in make a database server in different plataform. Last company I worked, their DB2 was in AS/400 and we deployed our .net application on windows 2003.
Eduardo Xavier
Okay, I wasn't clear on your question from the original wording.Unfortunately I don't think you have enough information right now to decide what to do. For example, do you know what transaction volume the application will have? What's your expected database size? 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?
Brandon Peterson
Brandon, thanks for your comment. I've update my question based on question. If you mind to read, would be helpfull.
Eduardo Xavier
+1  A: 

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

Larry K
Larry, thanks for your feedback. I didn't know that mysql has more choices in Linux. I would like to explore more about that. Thus, certainly, influence my decision.
Eduardo Xavier
the preferred platform for MySQL development is Linux, so it's natural to find more tools there. just like there are more tools for .Net on windows than linux
Javier
also don't forget that the Linux distro mantainers, and even the kernel developers regularly test MySQL as a common load scenario. That's why a couple of years ago somebody found it to be 10 times slower on BSDs than on linux, simply there wasn't so many developers doing the mutual optimisations between MySQL and the kernel
Javier