目标
帮助开发和运维理解数据库的核心技术,通过对比传统的关系型数据库,来理解Cassandra并将其运用到实际工作中。
观点
IMS, RDBMSs, NoSQL. The horse, the car, the plane.
每种数据模型,均有自己的使用场景,一直沿用至今。
关系型数据库问题
1 Join操作在数据量巨大的时候,性能低下
2 保证数据的一致性,关系型数据库使用到事务,事务的处理是依赖锁的,存在比较重的负载
解决关系型数据库在数据量巨大的一些基本路径
a 垂直扩展,提升硬件性能
b 集群部署,引入一致性和失败转移问题
c 对数据库参数进行调优
d 应用层进行优化,比如加索引,拆分复杂SQL以及存储过程
e 添加缓存层,比如memcached、redis、EHcache等,引入更加严重的一致性问题
f 又回到数据库本身,进行denormalization(违背关系型数据的原则),比如进行数据的冗余
关系型数据模型也仅仅解决一些特定的问题,不是数据存储的银弹。
但是关系型数据库是目前被学习和使用最多的数据模型,无论是企业还是高校。似乎是一个放之四海而皆准的数据模型。
NoSQL的崛起
核心点:数据量的激增
分类
key-value型:Redis、Memccached
列存储型:HBase、Cassandra
文档存储型:MongoDB、CouchDB
图数据型:FlockDB、Neo4J