看到了一篇不错的文章做下的笔记,有兴趣的朋友可以去看看https://www.cnblogs.com/gzxbkk/p/7942924.html
1.优缺点比较
类型 | 优点 | 缺点 |
SQL(关系型) | 资料丰富,易于维护
| 可能会产生高昂的成本问题 |
NoSQL(非关系型) | 简单易部署,成本较低 扩展性较好,因为基于键值对,数据之间没有耦合性 | 维护工具和资料有限 |
2.关系型数据库的详解
优势 | 不足(不擅长处理) |
保持数据的一致性 可以进行Join等复杂查询 | 大量数据的写入 |
3.关系型数据库处理一些问题的手段
a.大量数据的写入处理
读写集中在一个数据库上让数据库不堪重负,则可采用主从复制技术实现读写分离,以提高读写性能和读库的可扩展性
解决写入规模化的问题
首先,将主数据库从一台增加到两台,作为互相关联复制的二元主数据库使用,并对每个表的请求分别分配给合适的数据库来处理,以避免更新处理上的冲突而造成的数据不一致。
其次,可以考虑将数据库按功能分离到不同的数据服务器上,以减少每台数据库服务器上的数据量,但是分别存储在不同服务器上的表会造成Join处理失效,所以需要优先考虑这些问题
b.为有数据更新的表做索引或表结构变更
创建索引能够加快查询速度,增加必要的字段须要改变表结构,这些处理都必须在对表进行共享锁定的情况下完成,这期间数据变更、插入、删除等都是无法进行的。如果需要进行一些耗时的操作,就需要特别注意表内数据是否会更新。
4.典型的NoSQL数据库,临时性键值存储(memcached、Redis)、永久性键值存储(ROMA、Redis)、面向文档的数据库(MongoDB、CouchDB)、面向列的数据库(Cassandra、HBase)
5.总结:关系型数据库与非关系型数据库并非对立而是互补关系,即通常情况下使用关系型数据库,在合适环境中使用非关系型数据库,让非关系型数据库对关系型数据库的不足进行弥补