热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nosql数据库总结

Nosql概述为什么要用Nosql而不是关系型数据库?大数据时代(一般的数据库无法进行分析处理)单机Mysql时代一个基本网站访问量不大,单个数据库完全足够,静态网页html服务

Nosql概述

为什么要用Nosql而不是关系型数据库?

大数据时代(一般的数据库无法进行分析处理)



  • 单机Mysql时代



    一个基本网站访问量不大,单个数据库完全足够,静态网页html=>服务器没有太大的压力

    这种情况下,网站瓶颈是什么



  1. 数据量如果太大,一台机器放不下

  2. 数据索引 单表超过300万一定要建立索引,Mysql(B+ tree索引)台打,一个机器也放不下

  3. 访问量(读写混合),一个服务器承受不了

只要发生三种情况之一,一定要改进



  • 缓存时代 Memcached+Mysql+垂直拆分(读写分离,主从复制)==>解决读的问题

    优化Mysql底层数据结构和索引 ----> 文件索引(IO) ----> 缓存Memcached

    网站80%都在执行读操作,每次查询数据库都会十分麻烦,希望减轻数据的压力,我们可以使用缓存来保证效率



  • 表分区(没有大量使用)



  • 分库分表+水平拆分(Mysql集群)==>使用分库分表解决写的压力





  • 如今数据量很多,变化很快,Mysql等关系型数据库不够用了

新型数据库==>图形数据库,Json数据库

使用Mysql数据库存储图片,文件等大型数据,数据库表就会很大,效率就低了

如果有一种数据专门处理大型数据,那么mysql的压力就会变小,大数据的IO压力下,表几乎无法更改(一亿条数据增加一列 非常难办!)

灰度发布:平滑升级

互联网基本架构模型

本质:数据库(读,写)

MyISAM:表锁(查询一个数据需要锁定整个表)==>影响效率,高并发下出现严重问题

Innodb:行锁(查询一个数据只需锁定一行)

为什么要用NoSql?

用户的个人信息,社交网络,地理位置,用户自己产生的数据,用户日志等爆发式增长

关系型数据库达到瓶颈,使用Nosql可以很好的处理这种情况

NoSql=Not Only Sql(不仅仅是Sql)泛指非关系型数据库,随着WEB2.0互联网的诞生,传统的关系型数据库很难对付(尤其是大规模高并发的社区)

关系型数据库:表格(行和列来记录)(POI使用java操作Excel)

Nosql数据库:没有固定的格式,拓扑图(动态发展),不需要多于操作就可以横向扩展, Map

Nosql特点



  • 方便扩展(数据之前没有关系,很好扩展!) 解耦

  • 大数据量高性能(Redis一秒可以写8w次,读取11w次,Nosql的缓存记录,是一种细粒度的缓存,性能会比较高)

  • 数据类型多样型(八种类型),不需要设计数据库,随取随用(如果数据量大很多人就无法设计)

传统RDBMS



  1. 结构化组织

  2. Sql

  3. 数据和sql都存在单独的表中 row col

  4. 操作数据的操作,数据定义语言

  5. 严格的一致性

  6. 基础的事务

Nosql



  1. 不仅仅是数据

  2. 没有固定的查询语言

  3. 键值对存储,列数据(Hbase),文档存储(Mongodb),图形数据库存储

  4. 最终一致性

  5. CAP定理和BASE理论(异地多活)

  6. 高性能,高可用,高扩展

大数据时代的3V+3高

Nosql+关系型数据库一起使用

阿里巴巴演进分析

商品基本信息:mysql

商品描述:mongodb

图片:分布式文件系统Hdfs

搜索:搜索引擎elasticserach,ISearch

热门波段信息:内存数据库(Redis,memache)

商品交易:三方应用

出现问题



  • 数据类型太多

  • 数据源太多

  • 经常重构

  • 数据改造,大面积改造

统一数据服务层UDSL,类似JDBC屏蔽了数据库的差异

Nosql四大分类



  1. KV键值对存储

    Map

    新浪:Redis

    美团:Redis+Tair

    阿里,百度:Redis+Memache



  2. 文档型数据库(bson(类似于json))





  • 必须掌握 MongoDB:一个基于分布式文件存储的数据库,C++编写,主要用于处理大量文档

  • MongDB是一个介于关系型数据库和非关系型数据库的中间产品,是Nosql非关系型数据库中功能最丰富,最像关系型数据库的



  1. 列存储数据库(HBase,分布式文件系统)



  2. 图形关系数据库(社交拓扑图)





  • 存放的是关系而不是图形

  • Neo4j



推荐阅读
  • 伸缩性|发生_分布式文件系统设计,该从哪些方面考虑?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了分布式文件系统设计,该从哪些方面考虑?相关的知识,希望对你有一定的参考价值。点击上方关注“ ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • 电信网为不能访问联通服务器的网站_老板说网站慢,我们总结了三大阶段提升性能...
    作者:李平来源:https:www.cnblogs.comleefreemanp3998757.html前言在前一篇随笔《大型网站系统架构的演化》中&# ... [详细]
  • Hadoop——Hive简介和环境配置
    一、Hive的简介和配置1.简介Hive是构建在Hadoop之上的数据操作平台lHive是一个SQL解析引擎,它将SQL转译成MapReduce作业,并 ... [详细]
  • 马蜂窝数据总监分享:从数仓到数据中台,大数据演进技术选型最优解
    大家好,今天分享的议题主要包括几大内容:带大家回顾一下大数据在国内的发展,从传统数仓到当前数据中台的演进过程;我个人认为数 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • SQL Server 内存中OLTP内部机制概述(一)
    内存中OLTP(项目名为“Hekaton”)是一个新的完全集成到SQLServer中的数据库引擎组件。它专为访问内存常驻数据的OLTP工作负荷而进行优化。内存中OLTP有助于OLT ... [详细]
  • Zookeeper 总结与面试题汇总
    Zookeeper总结与面试题汇总,Go语言社区,Golang程序员人脉社 ... [详细]
author-avatar
丢失时
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有