当大家学习了一定的NoSQL知识以后,了解了现今许多NoSQL数据库(如HBase,MongoDB,Redis等)时,就会觉得关系型数据库可能已经跟不上时代的步伐。其实并不然,关系型数据库的性能绝对不差,相反它还具备了非常好的通用性和非常高的性能。NoSQL会如此火的原因是因为它能干关系型数据库某些领域不能办到或者很吃力的事(在我看来NoSQL与关系数据库形成了良好的互补的关系)。对于现今数据结构的多样性,关系型数据库肯定会力不从心,我们设计的NoSQL数据库具有“专一性”的特点(比如面向文档的数据库MongoDB等),就可以存储关系型数据库所不能存储的数据。对如今大数据的存储与处理也需要NoSQL来发力,由于NoSQL存储的数据关联性并不大,就易于数据的分散在多个服务器上,也就能存入更多的数据,这也体现了它良好的水平扩展能力。下面我们来列出关系型数据库与NoSQL数据库的优点与劣势。
关系型数据库的优势在于:
- 性能高;
- 它的通用性;
- 通过事物处理保持数据的一致性;
- 可以进行各种复杂查询;
- 现今已经存在了很多实际成果和专业技术信息;
- 由于以标准化为前提,数据更新的开销很小;
关系型数据库的劣势在于:
- 它并不能适用所有的用途;
- 当有大量数据进行写入处理会较慢(要分成几台服务器来进行写入需要考虑数据一致性问题和表与表之间的关联性问题);
- 为有数据更新的表做索引或表结构变更;
NoSQL数据库的优点在于:
- 易于数据的分散;
- 使大量数据的写入处理更加的容易(增加服务器数量);
NoSQL数据库的劣势在于:
- 某些NoSQL技术的不成熟,在实际应用时存在着BUG;