tags:

views:

228

answers:

3

When developing whether its Web or Desktop at which point should a developer switch from SQLite, Mysql, MSSql, etc, etc

+3  A: 

It depends on what you are doing. You might switch if:

  • You need more scalability or better performance - say from SQLite to SQL Server or Oracle.
  • You need access to more specific datatypes.
  • You need to support a customer that only runs a particular database.
  • You need better DBA tools.
  • Your application is using a different platform where your database no longer runs, or it's libraries do not run.

There are many more reasons for switching and it all depends on your requirements.

BrianLy
A: 

BrianLy hit the nail on the head, but I'd also add that you may end up using different databases at different levels of development. It's not uncommon for developers to use SQLite on their workstation when they're coding against their personal development server, and then have the staging and/or production sites using a different database tool.

Of course, if you're using extensions or capabilities specific to a certain database tool (say, PostGIS in PostGreSQL), then obviously that wouldn't work.

Marcel Levy
+1  A: 

You should switch databases at milestone 2.3433, 3ps prior to the left branch of dendrite 8,151,215.

You should switch databases when you have a reason to do so, would be my advice. If your existing database is performing to your expectations, supports the load that is being placed on it by your production systems, has the features you require in your applications and you aren't bored with it, why change? However, if you find your application isn't scaling, or you are designing an application that has high load or scalability requirements and your research tells you your current database platform is weak in that area, or, as was already mentioned, you need some spatial analysis or feature that a particular database has, well there you go.

Another consideration might be taking up the use of a database agnostic ORM tool that can allow you to experiment freely with different database platforms with a simple configuration setting. That was the trigger for us to consider trying out something new in the DB department. If our application can handle any DB the ORM can handle, why pay licensing fees on a commercial database when an open source DB works just as well for the levels of performance we require?

The bottom line, though, is that with databases or any other technology, I think there are no "business rules" that will tell you when it is time to switch - your scenario will tell you it is time to switch because something in your solution won't be quite right, and if you aren't at that point, no need to change.

Nathan