NoSQL or SQL? Do you have to choose?

Chris is a developer, writer, tech enthusiast, and husband. He blogs about productivity and technology at Christopher blogs via

I remember taking my first SQL course in college. I knew a little SQL just from messing around with WordPress and Drupal installations but mostly just understood SELECT statements and very simple JOINS. Anything other than that was gibberish.

During the course I realized how much I couldn’t stand more and more complicated SQL queries, mostly because of how verbose a single statement could get. Tying a bunch of related tables together with SQL while also doing it in an efficient matter was daunting. When I discovered NoSQL data stores it was a breath of fresh air.

The difference between relational databases and document driven data stores is large. The question is, do you have to choose between one or the other?

What Are You Trying To Accomplish?

NoSQL data stores tend to be super fast and highly accessible as they are represented in an object-based structure. There isn’t a relationship between tables like you would see in standard RDBMSs (relational database management systems) so you can access your objects directly.

If you are creating a large system that you would like to have fast access to data (who doesn’t want that?) then a NoSQL data store may be just what you want. But NoSQL may not work as well out of box because of weak consistency guarantees within your data.

There are ways to get around this, but if you are in need of a consistent way to store a large amount of transactions and aren’t necessarily obsessed with how fast it performs then you may need to stick with a traditional SQL database.

What About Security?

Some standard SQL database advocates suggest that NoSQL data stores are not as secure. The fact is that no data is intrinsically secure. No matter what you use, especially if it is available through some sort of online interface, there are always security risks.

One thing that may need to be considered is that some NoSQL DBMs, especially MongoDB, may be suspect to script injections due to their close ties to JavaScript. But, if your site and system pay attention to security then these problems are minimal.

Consider Your Pre-Existing Architecture and Culture

Of course before choosing any type of technology to build a system on, developers should consider the architecture they are aiming for. Are you a Windows shop? Use Linux for your web server? You have to consider this before choosing the type of data store that your system is going to stick with.

I work in a Windows shop and because of that any code that my team writes that will be enterprise gradewill most likely end up using some sort of SQL database and management system. This is using the standard company issued technology as some industries, especially finance and insurance, are typically wary of newer technologies.

If you are a developer in a large company you may know how uptight Enterprise Architecture types of employees may be. Instead of going against the grain it may just be easier to fit into their technology stack.

Also, when your data store needs to handle millions of transactions a day, using something full strength like Microsoft SQL Server or even ORACLE may be the best thing you can do as they are proven technologies and are consistent out of box.

So, Must You Choose?

Of course!

There are certain architectures that may be able to use NoSQL databases or even a combination of NoSQL and SQL. Just remember that no one technology has it all.

But, if you are looking for speed and lack of verbosity, NoSQL data stores may just be the technology you are looking for.

Rack Blogger is our catchall blog byline, subbed in when a Racker author moves on, or used when we publish a guest post. You can email Rack Blogger at


  1. I have a website which currently uses MySQL and around 1 lakh users access database on server. We use BlueHost for hosting the website. The website traffic is very high and sometimes it goes down, what should we do to improve website performance.
    The company website stores info about confidential data and provides placement support. So candidate data is secured and must be consistent.

    Can you suggest me a way of improving site performance ? I’m confused reading so many articles out there on net !


Please enter your comment!
Please enter your name here