热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

【Monogdb】MongoDB之十大应用设计技巧-mysql教程

技巧一、速度和完整性的折中在多个文档中使用的数据可以采用内嵌(反范式话)的方式,也可以采用引用(范式化)的方式。这种策略并没有优劣之分,各自都有优缺点。关键是要选择适合自己的应用场景方案。反范式化会产生不一致的数据。但要是范式化,应用则

技巧一、速度和完整性的折中 在多个文档中使用的数据可以采用内嵌(反范式话)的方式,也可以采用引用(范式化)的方式。这种策略并没有优劣之分,各自都有优缺点。关键是要选择适合自己的应用场景方案。 反范式化会产生不一致的数据。但要是范式化,应用则

技巧一、速度和完整性的折中

在多个文档中使用的数据可以采用内嵌(反范式话)的方式,也可以采用引用(范式化)的方式。这种策略并没有优劣之分,各自都有优缺点。关键是要选择适合自己的应用场景方案。 反范式化会产生不一致的数据。但要是范式化,应用则必须在每次确认时做额外一次查找。因为极高的性能和瞬间一致性不可兼得,所以必须要想清楚哪个才是应用最需要的。

考虑因素一般包括:

是否总要额外读取一次几乎不怎么改变的数据?

一致性很重要吗?

要不要快速读取?

技巧二、适应未来的数据要范式化

范式化可使数据可用性更加长久,未来可以在不同的应用中以不同的方式查询范式化的数据。这里的前提是有些数据将会一年不断地被各种应用得到。

技巧三、尽量单个查询获得数据

mongodb的数据库设计应该从应用单元的查询出发。 应用单元,对于web应用或者移动应用可以将对后端的一次请求视作一个应用单元 对于桌面应用,一次用户交互可以算是一个应用单元 对于分析系统,一个图表的加载算作是一个应用单元

技巧四、嵌入关联数据

当在嵌入和引用文档之间犹豫不决时候,不防想想查询的目的是为了获得字段本身还是为了进一步获得更加广泛的信息。如果前者建议采用嵌入关联数据。

技巧五、嵌入时间点数据

比如某人更新了个人信息,那么就不需要更改其以往的订单内容

技巧六、不要嵌入不断增加的数据

mongodb存储数据的机制决定了对数据的不断追加数据是很低效的。在正常使用中数据和对象的大小应该相对固定。

技巧七、预填充数据

如果已经知道未来要用到哪些字段,第一次插入是就带着这些字段会比用到时再创建效率更高。 比如每天都要使用新的集合,最好提前创建。

技巧八、尽可能预先分配空间

只要知道文档开始比较小,后来会变得确定的大小,就可以使用这种优化方法。 一开始插入文档的时候就用和最终数据大小一样的垃圾数据填充。即添加一个garbage字段(其中包含一个字符串,串大小与文档最终大小相同)

技巧九、用数组存放要匿名访问的内嵌数据

一个常见的问题就是内嵌信息到底是欧也妮个数据还是用文档来存。如果确切知道查询内容就用子文档存。如果有时不太清楚查询的具体内容,则要数组。 当知道一些条目的查询条件时候通常该使用数组。

技巧十:文档要自给自足

mongodb是一个无脑的大型数据存储。mongodb几乎不做任何数据处理,仅仅存储数据。要尽量遵守这点,避免让mongodb做些能在客户端完成的计算。即便是写小任务,像求平均值或求和,也要放在客户端去做。

如果要找的信息必须经过计算,且无法直接从文档中获得,有两种定义:
付出高昂的性能代价;优化文档结构,使得这些信息能够从文档中直接获得。


推荐阅读
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • MongoVUE基础操作指南:轻松上手数据库管理
    本文介绍了MongoVUE的基础操作,旨在帮助用户轻松掌握数据库管理技巧。MongoVUE是一款功能强大的MongoDB客户端工具,虽然需要注册,但其用户友好的界面和丰富的功能使其成为许多开发者的首选。文中详细解释了安装步骤、基本配置以及常见操作方法,并对一些常见的问题进行了修正和补充,确保用户能够快速上手并高效使用MongoVUE进行数据库管理。 ... [详细]
  • MongoDB 默认使用哪个端口?—— MongoDB 教程详解
    MongoDB 在默认配置下监听的端口是 27017,用户在连接数据库时通常会使用此端口进行各种操作,包括数据插入、查询和更新等。除了 27017 端口外,MongoDB 还支持其他配置选项,以满足不同的应用场景和安全需求。 ... [详细]
  • MongoDB高可用架构:深入解析Replica Set机制
    MongoDB的高可用架构主要依赖于其Replica Set机制。Replica Set通过多个mongod节点的协同工作,实现了数据的冗余存储和故障自动切换,确保了系统的高可用性和数据的一致性。本文将深入解析Replica Set的工作原理及其在实际应用中的配置和优化方法,帮助读者更好地理解和实施MongoDB的高可用架构。 ... [详细]
  • 成功实现Asp.Net MVC3网站与MongoDB数据库的高效集成
    我们成功地构建了一个基于Asp.NET MVC3框架的网站,并实现了与MongoDB数据库的高效集成。此次更新不仅完善了基本的创建和显示功能,还全面实现了数据的增删改查操作。在创建功能方面,我们修复了之前代码中的错误,确保每个属性都能正确生成。此外,我们还对数据模型进行了优化,以提高系统的性能和稳定性。 ... [详细]
  • MongoDB Aggregates.group() 方法详解与编程实例 ... [详细]
  • 修复一个 Bug 竟耗时两天?真的有那么复杂吗?
    修复一个 Bug 竟然耗费了两天时间?这背后究竟隐藏着怎样的复杂性?本文将深入探讨这个看似简单的 Bug 为何会如此棘手,从代码层面剖析问题根源,并分享解决过程中遇到的技术挑战和心得。 ... [详细]
  • 在使用关系型数据库时,通常需要通过用户名和密码进行身份验证才能访问数据。然而,MongoDB默认情况下并不强制要求这种身份验证机制,使得用户无需凭据即可访问并执行各种操作。虽然这一设计简化了初学者的上手过程,但也带来了显著的安全风险。为了提升MongoDB的连接安全性,本文将探讨多种策略与实践,包括启用身份验证、配置网络访问控制、加密通信以及定期审计安全设置,以确保数据库的安全性和数据的完整性。 ... [详细]
  • Mongoose E11000 错误:集合中出现重复键问题分析与解决 ... [详细]
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • 提升MySQL数据库架构性能的策略与方法
    为了提升MySQL数据库架构的性能,本文探讨了多种策略与方法。首先,分析了影响数据库性能的关键因素,并详细阐述了数据库结构优化的重要性。接着,介绍了数据库设计的基本步骤,包括第一、第二和第三范式的应用,以及反范式化设计的场景。此外,还讨论了数据库物理设计的关键要素,如表定义、索引设计和存储引擎选择,以确保高效的查询响应和数据管理。 ... [详细]
  • 本课程首先介绍了全栈开发的最后一公里为何重要,并详细探讨了搭建线上生产环境的关键步骤。随后,通过五个本地Node.js项目的实战演练,逐步展示了从快速构建纯静态简易站点到复杂应用的全过程,涵盖了环境配置、代码优化、性能调优等多方面内容。 ... [详细]
  • 本文将深入探讨MySQL与MongoDB在游戏账户服务中的应用特点及优劣。通过对比这两种数据库的性能、扩展性和数据一致性,结合实际案例,帮助开发者更好地选择适合游戏账户服务的数据库方案。同时,文章还将介绍如何利用Erlang语言进行高效的游戏服务器开发,提升系统的稳定性和并发处理能力。 ... [详细]
  • 掌握 MongoDB 基础操作与实用技巧 ... [详细]
author-avatar
雨舒紫_586
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有