专栏首页图南科技MongoDB最佳实践系列-几个问题梳理和复盘

MongoDB最佳实践系列-几个问题梳理和复盘

工作中主要负责的系统主要以MongoDB数据库为主,开发过程中积累了一些经验和实际使用case,前一段时间把相关的场景整理了一下,组织了几篇文章。

当我尝试想把这些文发布到MongoDB中文社区时,与负责人沟通后,他们提出了一些文章中有待商榷和不严谨的地方,我在这里做一个梳理和复盘修正。

关于时间存储类型的选择

《MongoDB开发系列-从数据集合的设计开始 》中写到

时间可以直接定义为格式化的时间,便于识别和查询。不必特意存储时间戳,这样方便可视化的工具查询核对。

这里的格式化的时间有歧义,会被认为是时间字符串,比如(2019-07-03 19:10:11),我的本意是想表达使用ISODate类型的时间格式存储。

时间戳和时间格式两个数据类型的存储是一个选择问题,有的人习惯使用时间戳存储,有的人习惯用时间类型存储。

建议存时间戳的认为,时间转换成字符串很方便,字符串转换成时间很不方便。还有效率的问题。

字段语义化和字段映射

字段长度尽可能的短,不宜过长。也是考虑到内存优化。

原厂专家的建议是

实际并不存在长短的问题,因为有压缩,字段名这种重复的字段压缩后可以忽略

最开始我在考虑MongoDb是基于内存和key value形式的数据库,关于【命名规范,短字符的建议】这一条,我在官方和社区都没有找到正面的回应。

官方的文档大多是以小写命名做字段定义的,所以对于这个观点 我也是在逐步否定,或者说这种做法对内存的优化并不明显,反而牺牲了字段语意化,增加了开发字段映射和沟通成本。

官方文档示例

正常的做法是:按照驼峰或者全部小写的语义化命名即可

单文档宽度

注意这种情况下,切忌文档过宽。那如何避免这种情况,我的方法是预估最大字段数,以20个字段为节点,多于20则采用嵌套document的设计方式组织document。

这是工作中的设计经验,有不严谨的地方,容易误导读者。不应该有20的这个量化数据,我的本意是,如果一级属性太多,可以整理为二级嵌套字段,仅此而已。

MongoDb最佳实践系列

https://www.jianshu.com/p/b37766897d76

文章已同步到公众号《图南科技》欢迎关注

本文分享自微信公众号 - 图南科技(tunan_technology),作者:图南科技

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从Yum安装PHP7.2环境想到的

    本文介绍一种比较便捷的安装PHP环境的方法-yum安装,这种安装方式相比源码安装PHP,更加方便快捷。

    needrunning
  • 一则小故事-和时间一起做MongoDB的朋友

    有关 MongoDB 是什么,MongoDB 如何用,如何发挥最大优势的相关问题,欢迎大家交流探讨。

    needrunning
  • MongoDB开发系列-选定合理的数据类型

    本篇介绍MongoDB数据库中常见的数字和时间数据类型使用场景,并给出最佳实践引导。

    needrunning
  • php取到的时间总是差8小时的解决方法

    从php5.1开始,在设置文件”php.ini”里面有一项叫做”date.timezone”,可以设置服务器所在的时区。刚安装的php此项应该是注释掉的,这种...

    ApacheCN_飞龙
  • Python3爬取steam优惠

    妈妈再也不用担心我不知道那些游戏没有打折了,一键爬取steam优惠名单,就是写到钱的部分程序崩溃了,以至于只有游戏名

    Elapse
  • ERPjob.Net过期,改为ERPjob.cn

    因为[URL=http://www.ERPjob.cn]ERPjob.Net[/URL]过期了,而.com的域名买下来太贵,也没必要,不想续费了。本来就是一个能...

    崔文远TroyCui
  • 如何在Debian 9上安装MongoDB

    Debian 9的官方软件包存储库包含稍微过时的MongoDB版本,这意味着我们将从官方的MongoDB repo安装。

    藕丝空间
  • Spring Ioc源码分析 之 Bean的加载(八):初始化

    初始化 bean 的方法其实就是三个步骤的处理,而这三个步骤主要还是根据用户设定的来进行初始化,这三个过程为:

    大王叫下
  • 腾讯云高可用云主机性能提升团队:风口浪尖,淡然处之,也无风雨也无晴

    在一个成长的行业, 不断得有厂商被淘汰,也不断得有黑马进来,情节跌宕起伏,大家争当武林霸主;而身处其中的我们,其实只有最朴实的愿望,把可用性做好,把客户服务好,...

    dandansong
  • PDF与Word工具以及翻译网站推荐

    google翻译:https://translate.google.com/toolkit/list?hl=zh_CN#translations/active

    zhangrelay

扫码关注云+社区

领取腾讯云代金券