博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mongodb优化
阅读量:7100 次
发布时间:2019-06-28

本文共 768 字,大约阅读时间需要 2 分钟。

hot3.png

    公司的一个微信项目用的是groovy语言,spring boot 开发的,架构师的选型果然跟一般企业运用架构不一样。数据库用的mongodb。mongodb一直只闻其名,他和nodejs是一对好搭档。不扯这么多了。

    我遇到了一个真实的问题是,我接手做微信的后台管理,简直快疯了。因为做查询列表的时候,速度奇慢无比。后来我想到添加分页的方式,但是还是很慢,以至于我一直怀疑分页无效。

   分析原因的时候,mongodb是用@DBRef来做关联的。百度了一下,貌似官方文档都怎么不推荐用这种方法的。同时我发现了有些用@DBRef还有@CacadeSave注解。人家添加了一个监听器,在mongo保存之前,同时把fiedl中的对象保存的。但是并没有存到Hazelcast分布式内存网格框架中。

    因为我要查询的对象中包含着子对象,子对象又包含着子对象。而很多list中的对象,很多子对象有时相同的,没必要去查询mongodb。可以直接在缓存中获取,这样效率或许就会快多了吧。

 

官方文档里有这么一句话

Unless you have a compelling reason to use DBRefs, use manual references instead.

    今天问了一下构架师关于mongodb的优化问题,他好像并没有提供实质性的建议,只是提供了一下方向。就是去掉DbRef的注解,还有就是用@Query注解。但是数据库中已经是用DbRef定义了。数据库中的表已经这样定义了。

    我想到一种方法是用比较原生的api来处理。

    MongoOperations是一个很强大的接口,有了这个接口,基本上什么都搞定了。

MongoOperations

     

转载于:https://my.oschina.net/miaojiangmin/blog/782564

你可能感兴趣的文章
Create and Call HttpHandler in SharePoint
查看>>
pymysql.err.InternalError: (1054, "Unknown column 'None' in 'field list'")
查看>>
树莓派与window 10组成的物联网核心:让人失望
查看>>
《生活在Linux中》之:在Bash的Emacs模式中使用Vim
查看>>
HDOJ 5411 CRB and Puzzle 矩阵高速幂
查看>>
[LeetCode] Maximum Vacation Days 最大化休假日
查看>>
Microsoft Word、Excel、PowerPoint转Pdf
查看>>
Servlet概述
查看>>
Servlet的异常处理
查看>>
支付宝 app支付 沙盘使用
查看>>
Redis持久化配置-AOF
查看>>
计算机网络的应用层简单介绍:
查看>>
需求管理之客户需求何时休?
查看>>
Java进化? Kotlin初探与集成Android项目
查看>>
URL中的#
查看>>
CentOS自带mysql配置(密码更改、端口开放访问、添加进系统启动项)
查看>>
MYSQL中动态行数据转列数据
查看>>
anchor_target_layer中的bounding regression
查看>>
[转]怎么解决输入流和输出流编码问题
查看>>
Linux下Jenkins服务器搭建
查看>>