美文网首页我爱编程
2.非关系型数据库与hash

2.非关系型数据库与hash

作者: 杨大菲 | 来源:发表于2018-04-15 12:00 被阅读0次

    常见的关系型数据库MySQL Oracl RDBMS,使用sql语句进行增删改

    非关系型数据库NoSQL数据库为了解决关系型数据库以下问题而诞生,常见的非关系型数据库有 Redis MongoDB  HBase

    非关系型数据库都是k-value形式,value是json格式,查询只用查倒key获取对应的json解析json即可,这样的设计可以允许每个key对应的value是不用的,每个json可以有长有短,曾删改某个key对应的

    关系型数据库问题:

    1)高并发是容易出现费时情况,虽然可以使用memecached解决但是也会带来hash不一致问题

    *memecached:Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

    *hash:HASH函数是这么一种函数,他接受一段数据作为输入,然后生成一串数据作为输出,从理论上说,设计良好的HASH函数,对于任何不同的输入数据,都应该以极高的概率生成不同的输出数据,因此可以作为“指纹”使用,来判断两个文件是否相同。

    数据 ---->输入 HASH函数  ---->输出指纹数据

    从这个角度说来,输入完全不必要是数字、只要是数据,都可以做HASH,当然具体实现可能会有所不同。

    我可以举一个简单的糟糕的HASH函数的例子,例如我要判断两篇文章是否相同,我又不想一个字一个字比较,那么我可以这么做,从两篇文章中选择第1、10、100、1000……个字进行比较,如果他们不相同,那么肯定就不是一篇文章了,这个时候,输入就是文章,输出的HASH值就是这几个字组成的字符串。

    2)扩展性不好,增加字段需要改大量的表结构

    3)恢复数据较慢

    非关系型数据库优点:

    1)解除了数据之间的依赖关系后,可部署在分布式系统中,通过多台机器分担单一机器的高负荷

    2)由于数据之间无关系,所以增删改高效

    相关文章

      网友评论

        本文标题:2.非关系型数据库与hash

        本文链接:https://www.haomeiwen.com/subject/gjjdkftx.html