键值数据库-纯真ip库数据
一、什么是NOSQL
NoSQL(NoSQL = Not Only SQL),意为“不只是SQL”,是一个全新的数据库概念,泛指非关系型数据库。
随着互联网web2.0网站的兴起,传统的关系型数据库已经无法应对web2.0网站,尤其是超大规模、高并发的SNS类web2.0纯动态网站,暴露出很多难以克服的问题. 非关系型数据库由于自身的特点,发展非常迅速。
NoSQL数据库的出现就是为了解决大规模数据集合多种数据类型带来的挑战,尤其是大数据应用问题。
2、NOSQL与关系型数据库的关系及比较优势:
(1)成本:nosql数据库简单易部署,基本都是开源软件。 他们不需要像使用oracle那样花大价钱去购买和使用,而且比关系型数据库便宜。
(2)查询速度:nosql数据库将数据存储在缓存中,关系型数据库将数据存储在硬盘中。 自然,查询速度远低于nosql数据库。
(3)存储数据的格式:nosql的存储格式为key、value、document、picture等,因此可以存储基本类型、对象或集合等格式,而数据库只支持基本类型。
(4)可扩展性:关系型数据库对join等多表查询机制有限制,难以扩展。
缺点:
(1)维护的工具和资料有限,因为nosql是新技术,无法与关系型数据库10多年的技术相提并论。
(2) 不提供对SQL的支持。 如果不支持SQL等行业标准,会对用户产生一定的学习和使用成本。
(3)不提供对sql的支持。 如果不支持sql等行业标准键值数据库,会对用户产生一定的学习和使用成本。
3.非关系型数据库的优势
(1)性能 NOSQL是基于键值对的,可以想象成表中主键和值的对应关系,不需要SQL层解析,所以性能非常高.
(2)可扩展性也是因为基于键值对的数据之间没有耦合,所以非常容易横向扩展。
四、关系数据库的优点
(1) 复杂查询可以使用SQL语句轻松地在一张表和多张表之间进行非常复杂的数据查询。
(2) 事务支持使得具有高安全性能的数据访问需求得以实现。 对于这两类数据库来说,彼此的长处就是自己的短处,反之亦然。
五、总结
(1)关系数据库和NoSQL数据库不是对立的而是互补的,即通常使用关系数据库,适合NoSQL的时候使用NoSQL数据库。
(2)让NoSQL数据库弥补关系数据库的不足。
(3)一般将数据存储在关系型数据库中,关系型数据库的数据备份在nosql数据库中。
六、主流NOSQL产品 1、Key-Value存储数据库
相关产品:Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
典型应用:内容缓存键值数据库,主要用于处理大量数据的高访问负载。
数据模型:一系列键值对
优点:查询速度快
缺点:存储的数据缺乏结构
2.列存数据库
相关产品:Cassandra、HBase、Riak
典型应用:分布式文件系统
数据模型:存储在列簇中,将同一列的数据存储在一起
优点:搜索速度快,可扩展性强,分布式扩展更容易
缺点:功能相对有限
3.文档数据库
相关产品:CouchDB、MongoDB
典型应用:Web应用(类似于Key-Value,Value是结构化的)
数据模型:一系列键值对
优点:数据结构要求不严格
缺点:查询性能不高,没有统一的查询语法
4.图数据库
相关数据库:Neo4J、InfoGrid、Infinite Graph
典型应用:社交网络
数据模型:图结构
优点:使用图结构相关的算法。
缺点:需要计算整个图才能得到结果,不易实现分布式集群方案。
程序员灯塔