2 liao00001 liao00001 于 2016.02.29 17:58 提问

如何mongodb3.2多线程读取和单线程读取差不多 1C

由于读取数据比较多,目录采用了多线程去读取。但效果不佳。从输出日志看,是等待一个线程读取完毕再到一下个线程。请问怎么解决?
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销22.5003ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销25.0004ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销30.0004ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销35.0005ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销50.0008ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销55.0008ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销57.5008ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销62.501ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销77.5011ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销82.5013ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销105.0016ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销110.0017ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销107.5017ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销110.0017ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销112.5017ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销115.0018ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销115.0018ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销117.5018ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销125.0019ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销132.502ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销137.5021ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销155.0023ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销170.0026ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销170.0026ms
【2016-02-29 16:13:26】执行DBGridDataReaderV1d0.ReadData()函数共开销217.5034ms
【2016-02-29 16:13:27】执行DBGridDataReaderV1d0.ReadData()函数共开销225.0035ms
【2016-02-29 16:13:27】执行DBGridDataReaderV1d0.ReadData()函数共开销230.0035ms
【2016-02-29 16:13:27】执行DBGridDataReaderV1d0.ReadData()函数共开销240.0037ms
【2016-02-29 16:13:27】执行DBGridDataReaderV1d0.ReadData()函数共开销245.0038ms

2个回答

oyljerry
oyljerry   Ds   Rxr 2016.02.29 19:40

多个线程是不是各自去连接的mongodb数据库等。

liao00001
liao00001   2016.04.16 16:44

是的,有否一些好建议。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
多线程复制文件比单线程慢?
Java多线程拷贝文件测试
单线程与多线程读取文件
//实验多个线程读取多个文件和单个线程读取多个文件//当文件数量是2-3个时,单线程比多线程更快,可能是没有创建线程之类的开销//文件数量增加到10多个以后,多个线程稍微快一点,但是并没有快多少//按照网上的说法,读取文件的性能瓶颈是磁盘io的速度,多个线程并不能提高性能#include #include #include #include #include using namespac
Python多线程与单线程处理大文件的性能差异【附图】
今天写了一段Python多线程处理文件的代码,用以比较单线程和多线程在处理较大文件时的速度差异 代码解释: 1-3行:导入需要用到的模块os,threading,ctime 4-11行:从列表list中取得文件名,并计算出该文件的行数 15-22行:取得当前工作路径下的所有文件,并从中筛选出txt文件 28-33行:创建线程 34-35行:调用start()函数
单线程和多线程访问数据库性能比较一性能比较部分(oracle 数据库)
单线程和多线程访问数据库性能比较(oracle 数据库,C++Builder实现,odac4)说明:本文主要说明单线程和多线程访问数据库性能的性能比较,关键词在数据库(DataBase),线程(Thread),单线程(single Thread),多线程(multi-thread),数据库缓存(catch),事务(Transation),等,与具体实现方式相关不大。基本个人爱好,采用C++bu
多线程不一定比单线程快
1、TODO
多线程为什么跑的比单线程还要慢?
“多个人干活比一个人干活要快,多线程并行执行也比单线程要快”这是我学习编程长期以来的想法。然而在实际的开发过程中,并不是所有情况下都是这样。先看看下面的程序(点击下载): ThreadTester是所有Tester的基类。所有的Tester都干的是同样一件事情,把counter增加到100000000,每次只能加1。 1: public abstract class Thre
ArcGIS Engine 中的多线程使用
转自:http://anshien.blog.163.com/blog/static/169966308201082441114173/
python多线程与单线程之间的差距
对于python多线程与单线程之间有多少差距呢?今天用一个小例子比较一下。 说明:爬取代理ip网站ip并用代理ip访问某网站,看执行后的用时多少。 单线程版 # -*- coding: utf-8 -*- import requests from bs4 import BeautifulSoup as bs import re import time def proxy_list(m
Redis面试题(一): Redis到底是多线程还是单线程?
0. redis单线程问题    单线程指的是网络请求模块使用了一个线程(所以不需考虑并发安全性),即一个线程处理所有网络请求,其他模块仍用了多个线程。1. 为什么说redis能够快速执行(1) 绝大部分请求是纯粹的内存操作(非常快速)(2) 采用单线程,避免了不必要的上下文切换和竞争条件(3) 非阻塞IO - IO多路复用2. redis的内部实现 内部实现采用epoll,采用了epoll+自己...
多进程单线程模型与单进程多线程模型之争
服务器,事件 多进程单线程模型典型代表:nginx 单进程多线程模型典型代表:memcached 另外redis, mongodb也可以说是走的“多进程单线程模”模型(集群),只不过作为数据库服务器,需要进行写保护,只提供了读同步。 原因很简单,因为服务器的发展大部分都是归功于Linux Unix,而不是Windows。 Linux内核提供的epoll为开发服务器提供了很大的便利,lib