`
desert3
  • 浏览: 2159392 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

NoSQL误用和常见陷阱分析(转)

 
阅读更多
NoSQL误用和常见陷阱分析
去哪儿网(Qunar.Com):孙立

被误用的NoSQL:非常容易出现的错误使用方法
循环网络调用:
Memcached的循环和批量GET对比
        Redis的循环和批量GET对比
不压缩大数据:
        外部client压缩(外部压缩,可以减小存储,提升IO性能,并且能够提升网络IO性能),
        NoSQ存储压缩(NoSQL内部压缩,可以减小存储,提升IO性能,不能提升网络IO性能),
        不压缩
跨语言交互:
        序列化,压缩与多语言

NoSQL陷阱:NoSQL是一个新兴的话题,大量的NoSQL产品;也都是新出来的,难免出现各式各样的陷阱;不能避免陷阱,但是得掉进去可以爬出来。
官方数据很美好:
        官方数据很少提到缺点
        官方数据有默认条件:如数据大小
场景错误:
        Redis做持久存储
        单点、复制问题
                数据超过内存性能急剧下降
                扩容问题
        Redis做Cache存储
                性能极高
                数据结构丰富
                可以持久化、避免雪崩现象
细节描述不清楚:
        Ttserver=>兼容memcached协议
                不支持memcached的flag参数
                早期版本increment与memcached不一致
                Stats命令不一致
缓存重建:
        系统重启后,大部分请求到磁盘
        整个系统的性能可能出现抖动
        出现连锁雪崩反应
NoSQL陷阱-32bit问题:
        Ttserver -2GB(32bit):Ttserver在32bit下,到达2g数据大小将出现无法启动的现象
        Mongodb-2.5GB (32 bit)
版本升级问题:
        版本升级带来兼容问题(官方未声明的)
        版本升级可能导致适用场景变化

NoSQL与MySQL:
        不要犹豫该用MySQL还是NoSQL,在你还没有掌握NoSQL前,最好先在小项目尝试下。
选择NoSQL需要考虑
        数据的安全性-是否久经考验,关键业务数据,如订单,支付
        事务性的保障
        数据的重要性(是否可从其他数据恢复过来)
        是否有DBA运维
        未来的业务需求变化
性能之争—差别在哪里?:
        普通磁盘的IOPS(几百个)
        寻道时间、延迟时间
        顺序读和顺序写吞吐上百MB/S
NoSQL在普通磁盘的优化:
        随机写变顺序写
        内存索引-热数据cache
        读写算法优化(场景化)
        网络协议优化
       
NoSQL无处不在:
        不管你信不信,你很可能早已在接触NoSQL了。
为什么要构建自己的NoSQL:
        考察清楚场景和需求
        现有产品满足需求成本高
        针对特殊场景,也许比想象的简单
        可掌控
构建自己的NoSQL:
IP查询:主键已排序的TreeMap<IPEntry,String> (开始IP,结束IP构造成Key)

NoSQL与运维:
        并不像官方宣称的那样,NoSQL无需DBA运维
运维NoSQL并不容易:
        文档齐全吗?
        网上交流多嘛?
        周边工具齐全吗?
        出现意外问题你能搞定吗?出现意外问题,很难求助到人
监控-运维之本:除了操作系统最基本的监控,还应该监控
        IO
        CPU
        延迟
        QPS
        抖动
        数据量
备份很重要:
        避免单点
        定期数据库备份
        开发前做好切换准备(定义好所有要使用方法的接口,以便达到可切换到其他产品来避免风险)
分享到:
评论

相关推荐

    NoSQL误用和常见陷阱分析

    ### NoSQL误用和常见陷阱分析 #### 一、被误用的NoSQL:循环网络调用 在NoSQL数据库的使用过程中,一种常见的误用是循环网络调用,这通常发生在开发者没有充分利用NoSQL数据库的批量操作能力时。例如,在使用...

    大数据与云计算培训学习资料 NoSQL误用和常见陷阱分析 共29页.pptx

    大数据与云计算培训学习资料 NoSQL误用和常见陷阱分析 共29页.pptx

    NoSQL误用和常见陷阱分析(孙立)

    【NoSQL误用和常见陷阱分析】 在当前的软件开发领域,NoSQL数据库因其灵活性、高可用性和可扩展性而受到广泛关注。然而,随着其广泛应用,NoSQL误用和潜在问题也日益显现,这些错误如果不妥善处理,可能导致系统...

    大数据和NoSql

    NoSQL数据库的使用也存在一些潜在问题,"NoSQL误用和常见陷阱分析(孙立).pdf"可能会讨论如何避免这些陷阱,例如数据一致性、查询性能和数据迁移等问题。正确理解和运用NoSQL,对于确保系统的稳定性和可扩展性至关...

    NoSQL介绍PPT

    常见NoSQL介绍——MongoDB 常见NoSQL介绍——MongoDB 常见NoSQL介绍——MongoDB 常见NoSQL介绍——MongoDB 常见NoSQL介绍——MongoDB 常见NoSQL介绍——MongoDB 常见NoSQL介绍——MongoDB 正在使用NoSQL的一些知名...

    云计算系统架构文档 汇总上

    NoSQL误用和常见陷阱分析 孙立 pdf SAE云计算平台的技术发展与挑战 丛磊 pdf Twitter的JVM性能调优经验分享(Attila Szegedi) pdf Web请求异步处理和海量数据即时分析在淘宝开放平台的实践 岑文初 pdf 把大象...

    SQL与NoSQL数据库间的数据查询转换方法研究.pdf

    NoSQL数据库则是基于分布式文件系统和键值存储的数据库管理系统,它们具有高可扩展性、灵活的schema设计和高性能的特点,但是在数据一致性和事务处理方面存在一定的挑战。 在SQL与NoSQL数据库间实现数据查询转换时...

    实验四:NoSQL和关系数据库的操作比较

    本实验旨在对比分析四种不同的数据库管理系统:MySQL、HBase、Redis和MongoDB。这些数据库在处理大数据时各有特点,理解它们的概念及不同点是实验的关键。 1. **MySQL**:作为经典的关系型数据库管理系统(RDBMS)...

    基于NoSQL数据库的大数据处理分析.pdf

    #资源达人分享计划#

    nosql 和大数据简介

    在当今的信息化时代,大数据和NoSQL数据库成为了技术领域中的热门话题。这两个概念不仅改变了我们处理数据的方式,也引领了新一代的数据存储与分析潮流。本文将深入探讨Nosql和大数据的相关知识点,帮助读者理解它们...

    NoSQL深入分析

    NoSQL,全称为Not Only SQL,是一种非关系型数据库,其设计目的是为了处理现代互联网应用中的大规模数据存储和高并发访问需求。随着Web2.0时代的到来,传统的SQL关系数据库在处理这些问题上显得力不从心,从而催生了...

    nosqlbooster4.5.4 和注册机

    nosqlbooster4mongo-4.5.4 NoSQL Manager for MongoDB Pro

    NoSQLBooster for MongoDB

    3. **性能分析**:NoSQLBooster具有内置的查询执行计划分析器,可以帮助用户评估查询性能并优化查询速度。这在处理大数据量时尤为重要,能够确保应用的响应速度和效率。 4. **数据导入导出**:用户可以轻松地将数据...

    NoSQL数据库技术实战

    这部分内容对于开发者来说尤其实用,可以帮助他们避免常见陷阱,提升项目实施效率。 总的来说,《NoSQL数据库技术实战》是一本全面覆盖NoSQL技术的书籍,不仅提供了理论知识,还包含了大量实战经验,是大数据时代...

    nosql研发之路

    列族存储数据库如HBase,适用于大数据分析和处理;图形数据库如Neo4j,专用于处理复杂的关系数据,如社交网络中的好友关系。 二、NoSQL弥补MySQL的不足 1. **MySQL的扩展问题**:随着数据量的增加,单台服务器难以...

    NoSql打包文档

    4. **列族数据库**:列族数据库基于列式存储,适用于大规模数据存储和复杂查询,常用于数据分析和日志记录。 5. **文档型数据库**:文档型数据库存储结构化和半结构化数据,支持JSON、XML等格式,适合内容管理和Web...

    NoSQL与SQL数据库对比分析.docx

    它适用于需要处理PB级数据的场景,如搜索引擎、Web索引和日志分析。 文档数据库文档数据库存储的是JSON、XML等文档形式的数据,允许灵活的数据模型,适合处理半结构化数据。MongoDB是此类数据库的典型代表,它提供...

Global site tag (gtag.js) - Google Analytics