1、数据库根据不同的数据模型(数据的表现形式)主要分为层次型、网络型和关系型3种。
2、存储在不同服务器的数据表无法进行JOIN操作。
3、关系型数据库的优势:
(1)保持数据的一致性;
(2)由于以标准化为前提,数据更新的开销很小(相同的字段基本都只有一处);
(3)可以进行JOIN等复杂查询
(4)存在很多实际成果和专业技术信息(成熟的技术)。
4、关系型数据库的不足:
(1)大量数据的写入处理;
(2)为有数据更新的表做索引或表结构(schema)变更;
(3)字段不固定时应用;
(4)对简单查询需要快速返回结果的处理。
5、在使用关系型数据库时,为了加快查询速度需要创建索引,为了增加必要的字段就一定需要改变表的结构,为了进行这些处理需要对表进行共享锁定(读写锁),这期间数据变更(更新、插入、删除等)是无法进行的。如果需要进行一些耗时操作(例如为数据量大的表创建索引或者变更其表结构),就需要特别注意:长时间内数据可能无法进行更新。
6、关于对简单查询需要快速返回结果,由于关系型数据库时使用专门的sql语言进行数据读取的,它需要对sql语言进行解析,同事还有对表的锁定和解锁这样的额外开销,对于简单查询进行高速处理,没有必要非要使用关系型数据库。在这种情况下,推荐使用nosql,当然也可以使用mysql中的HandlerSocket方法,尽管mysql是关系型数据库,但是HandlerSocket(端口号9998/9999)并不是利用sql(端口号3306)而是直接进行数据访问。
7、nosql数据库只应用于特定领域,基本上不进行复杂的处理,但是它恰恰弥补了之前所列举的关系数据库的不足之处:
(1)易于数据的分散。由于关系型数据库为了进行JOIN处理,不得不把数据存储在同一个服务器内,这不利于数据的分散,相反NoSQL原本就不支持JOIN处理,各个数据库都是独立设计的,很容易把数据分散到多个服务器上,使得数据的写入和读入操作更容易。
(2)提高性能和增大规模
如果想要是服务器轻松处理更大量的数据,只有二种选择:一是提升性能,二是增大规模。
8、NoSQL数据库基本上来说就是为了“使用大量数据的写入处理更加容易(让增加服务器数量更加容易)”而设计的,尽管它在处理大量数据方面很有优势,但是实际上NoSQL还有其他特性:
(1)舒畅地对数据进行缓存(Cache)处理;
(2)对数据类型的数据进行高速处理
(3)进行全部保存。
9、NoSQL数据库存在着“键值存储”、“文档型数据库”、“列存储数据库”等各种各样的种类。