永发信息网

mongodb查询速度慢是什么原因

答案:1  悬赏:60  手机版
解决时间 2021-11-13 23:33
mongodb查询速度慢是什么原因
最佳答案
您好,排除方式一:是不是因为有子文档的原因? 找一个没有任何合同记录的文档查询,发现结果依旧,没有明显的改善; 排除方式二:没有创建索引? 在搜索列ID上创建索引,结果依旧; 排除方式三:是不是文档数量过大? 一万多行只是小数目,没理由,mongodb管理上千万的文档都是没有问题的,于时还是决定试一试,将记录全部删除,插入一条记录然后查询,结果依旧; 排除方式四:是不是由于客户端序列化的问题? 由于我存储的是自定义的对象,不是默认的Document,所以决定尝试直接存储Document,Document就两个字段,获取速度还是需要180ms。 排除方式五:是否由于客户机器是32位,而mongodb服务是64? 将程序放在64位机器上测试,问题依旧。 排除方式六:是否由于网络传输问题? 没道理啊,测试的客户端以及服务端均在同一局域网,但还是尝试将客户端程序直接在mongodb服务器上执行,问题一样; 上面的六种方式都已经尝试过,没有解决,最后决定求助于老代,毕竟是用过mongodb的高人,给我两个建议就搞定了: 排除方式七:查看mongodb数据文件,看是否已经很大? 经查看,总大小才64M,这比32位文件上限的2G来讲,可以基本忽略; 排除方式八:连接字符串。 Servers=IP:27017;ConnectTimeout=30000;ConnectionLifetime=300000;MinimumPoolSize=8;MaximumPoolSize=256;Pooled=true 我一看到这个参考字符串,第一印象是,我的写法和它不一样(string connectionString = "mongodb://localhost"; ),然后发现有两个重要的参数: 1:ConnectionLifetime=300000,从字面意思来看,是说连接的生命周期,而它的数值设置如此大,显然说明此连接不会被立即关闭,这和sql server的做法有所区别; 2ooled=true,从字面意思来看,应该是有连接池的概念。 分析:从上面的连接参数来看,我之前所理解的连接,就是客户端与服务端之间的连接,它需要在使用完之后马上关闭,即客户端与服务端不在有tcp连接。但我没有很好的理解连接池的作用。连接池实际上从存储很多个已经和服务端建立tcp连接的connection,在它的生命周期内一直保持和服务端的连接,生命周期过后会变成失效连接等待回收。 重新修改连接字符串再进行测试,问题解决,只有第一次请求时,由于需要创建tcp连接,性能会受影响,后面的请求,因为有连接池的存在,性能得到成倍提高。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
泰安到大城距离多远
什么是幅射?
老万家用燃煤采暖炉和柳店燃煤采暖炉哪个质量
日本人的审美观是怎样的,为什么说龟梨和也在
做了个腰腹抽脂,花了2.2万,感觉被坑了,而
煤矿倒闭国家赔偿5万元有说法?
lg怎么恢复出厂设置
成语坐看青苔怎么解释
五年口子窖40.8度多少钱一瓶
三相九线制电机的接法,电机接线盒坏掉了,已
URBANREVIVO(虹口龙之梦店)地址在哪,我要去
我13岁,就是经常自味,现在JJ好难受,怎么办
McAfee软件多长时间升级一次?
先有男的还是先有女的?
什么是同类项目、类似项目
推荐资讯
电影院地址在什么地方,想过去办事,
章飞一绝用了后果怎样
什么是攻丝和套扣
陇海路布厂街是属于哪个区的
北京市通州区怎么走向野三坡蹦极
我13,初一,唱歌比赛,是那种有评委的那种,
谁有从2000年开始到现在的所有奥特曼剧场版和
我要买一个二手手机,有卖的吗
为什么她对我前后态度不一样?
3M的钱是不是出不来了
《Android安全技术揭秘与防范》怎么样
矮的人穿短款还是长款好看
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?