So the debate rages on about NoSQL vs SQL databases, but I find the general debate to be asking the wrong questions. Obviously some databases are better at some tasks and others are better at others. And of course there are other types of data stores all together such as queues and file systems. More interesting though is looking at the types within types. For example, in NoSQL you have key/value stores and document-oriented databases. Both are good for different purposes, but you need to know when to use which.
Today though, due to a project I’m working on, I started looking seriously into another type. This time in the SQL camp. It’s called a column-oriented database. Most SQL/relational databases work off of a record equals a row concept, but a column-oriented database rotates that concept by 90 degrees. Column-oriented databases are great when you’re doing a data warehousing or catalog app. If you are pulling a small number of columns across a huge number of rows, check out a column-oriented database. There are a bunch on the market such as SyBase IQ, Infobright, and InfiniDB.