数据库分类
概述
数据库的种类很多,sql的与非sql的。像阿里云上就有十多个数据库,该如何选择呢
关系型数据库
阿里云上的RDS都属于关系型的数据库,包含有mysql,sql server等等
优点
满足ACID原则,强事务性
缺点
要完全满足ACID,则只能单机中实现,这会导致数据量增长有限,当数据量在千万级时就已经很吃力了
场景
- 要求可靠,银行系统,一分钱都不能坏。
- 要求一致性,踩楼活动的楼层数,快速写同时楼层数要按序增加,不重复。
缓存数据库
阿里云上的memcache和redis都属于缓存数据库
优点
由于数据完全在内存上,所以速度非常快
缺点
- 数据不可靠,掉电后可能会丢失一小部分数据
- 数据没有一致性,不要考虑事务性了
场景
- 要求快,但不要求数据能放很多的场景。关系型数据库的热数据存储区,将大部分的热数据放在cache上,只能很少使用的冷数据库才放在数据库上。这样能满足绝大部分用户的快速读的请求。
- 要求快,但不要求数据可靠的场景。session。
分布式非结构化存储数据库
非结构化数据,像音乐,图片,视频,这类缺少结构化的数据。阿里云提供的是OSS存储服务,也有做得好的七牛,又拍云这类服务商。开源的有hdfs。
优点
读写量大,数据量大