NoSQL databases, whether they are truly “no SQL” or “not only SQL,” defer differ from relational databases in one major respect; they tend to be easier to work with, and are better suited for use with real-time Web applications.

That’s why major and minor technology outfits are throwing development effort in the NoSQL field.

In the Free Software community, most people working with relational databases only have to contend with either MySQL (now increasingly MariaDB) or PostgreSQL or sometimes even SQLite. However, in the NoSQL arena, there are dozens of options to choose from.

Whether you want to use a Key-value or a document store NoSQL database, the most difficult task might be deciding which one to choose from a very long list of good options. Should it be MongDB MongoDB, Couchbase, CouchDB, Hypertable, HyperDex, Riak, Redis, DynamoDB, SchemafreeDB, or any other from this list or this one. Oracle has even jumped into the fray with Oracle NoSQL.

No matter your choice, this is one thing you gotta know. These databases can be resource intensive. They demand higher CPU and RAM allocation than any relational database. For example, when installing Couchbase, you are informed that you need a system with 4 CPUs and 4 GB of RAM. It will run on less, but when your website gets a traffic boost, be prepared to allocate more resources in a hurry.

And that’s the problem with these NoSQL databases. And that’s the reason most shared Web hosting companies will not offer them to you on a shared hosting account. You need a Cloud or VPS or a dedicated server. I experienced that first-hand when I was trying to use LampCMS to run a question and answer forum. The fact that the developer chose MongoDB as the database to use meant that using it on my shared hosting account was out of the question. And even when I migrated to a VPS service, using the basic VPS package was not going to do it.

Ultimately, using a NoSQL database will have an impact on the adoption of Free Software Web applications that use such a database. If you are trying to develop a Web application, that’s something to think about.