The overhead that makes RDBMS so slow guarantees atomicity, consistency, isolation, durability, also known as ACID . Some of these properties are quite important for money-making applications. You do not want to lose one order when the lights go out.
NoSQL databases typically sacrifice some or all of the ACID properties in return for greatly reduced overhead. For many applications, this is normal - if several "diggs" disappear when the lights go out, it does not really matter.
For an e-commerce site, you need to ask yourself what you really need.
- Do you really need a performance level that RDBMS cannot fulfill?
- Do you need the reliability that DBMS provides?
Honestly, the answer to # 2 is probably yes, which excludes most NoSQL solutions. And if you are not dealing with traffic levels comparable to amazon.com, then RDBM, even on modest hardware, is likely to satisfy your performance needs just fine, especially if you limit yourself to simple queries and index correctly. Which makes the answer to No. 1 "no."
However, you might consider using RDBMS for transaction data and a NoSQL database for non-critical data such as product pages, user reviews, etc. But then you will have twice as much data warehousing software to install, and any relationship between the data in the two data warehouses must be managed in code - there would be no CREATION of your NoSQL database against your RDBMS. This is likely to lead to an unnecessary level of difficulty.
After all, if RDBMS offers features that you should have for reliability, and it is suitably suitable for the types of downloads that you will experience, RDBMS is probably the best option.
Frank Farmer Apr 05 '10 at 23:56
source share