二维数组-mongodb写入byte[]类型 4M左右数据很慢

问题描述

mongodb写入byte[]类型 4M左右数据很慢

int rows = 1000;
int cols = 1000;
float[,] data = new float[rows, cols];
var floatArray = DimensionManagerV2d0.Dimension2To1(rows, cols, 1, data);
var byteArray = DataTypeManagerV2d0.ConvertFloat2ByteArray(floatArray);

DateTime t1 = DateTime.Now;
var entity = new Entity { ObserveTime = 201601010005, Data = byteArray };
MongoDbHelper.Save(MongoDbHelper.DefaultCollectionName, entity);

string message = string.Format("写入耗时:{0}毫秒.", (DateTime.Now - t1).TotalMilliseconds);

DateTime t2 = DateTime.Now;
IMongoQuery query = Query.EQ(t => t.Id, entity.Id);
var queryData = MongoDbHelper.FindOne(MongoDbHelper.DefaultCollectionName, query);
message += string.Format("查询共耗时:{0}毫秒.", (DateTime.Now - t2).TotalMilliseconds);
MessageBox.Show(message);

以上代码就是写入一个1000*1000的二维数组。写入和读取大概要1.5秒左右。那位可以处理一下应该一般情况下35毫秒能解决的。

解决方案

不能把驱动换成2.0.因为项目是net framework 4.0的。再加序列化速是多少?这样操作很头痛。到时我要查找范围行和列的数据就无法实现了。

解决方案二:

http://blog.csdn.net/norsd/article/details/47981931

解决方案三:

http://www.07net01.com/2015/08/913434.html

解决方案四:

查看一下你的mongodb的日志 同时查看一下性能瓶颈

时间: 2024-08-01 09:33:19

二维数组-mongodb写入byte[]类型 4M左右数据很慢的相关文章

(七十八)嵌套和二维数组

例如int a[5]是一维数组,他是由a[0].a[1].a[2].a[3].a[4]这五个int类型的数组组成的.   如果放到excel里面,那么就是: a[0] a[1] a[2] a[3] a[4]   这样一个样子,一维表示线. 一维数组的表示方法可以理解为: 变量名[横坐标x] x初始为0,表示原点   假如表格从线到面,就升格为二维. 二维数组的的特点是既有横坐标,又有纵坐标.声明格式为: int 变量名[纵坐标y][横坐标x] 表示每行有x个元素,每列有y行. 例如int a[3

c++-C++ char 类型二维数组出现错误

问题描述 C++ char 类型二维数组出现错误 图片是错误--不知道怎么回事求大神解答-- 解决方案 贴代码,不要贴图.建议贴在codepad.org上,这里给出链接. 解决方案二: #include #include using namespace std; char ** create_table(int rows, int cols){ char **a; a = new char *[rows+rows]; for(int i;i<rows+rows;i++){ a[i]=new ch

c语言-C++ CString类型二维数组 求长度

问题描述 C++ CString类型二维数组 求长度 ```CString bb[100][100] = [[a,b,c],[d,e,f],[g,h,i]] 怎么获取里面一维数组长度 3 解决方案 整个遍历一遍呗!否则还有什么好方法吗? 解决方案二: 只能遍历二维数组 然后取对应的长度 解决方案三: 建议使用动态数组,这样浪费栈区内存 解决方案四: sizeof(bb[0]) 解决方案五: 只能遍历了吧--可以写个遍历求长度的函数,调用就行,不过这样太麻烦 推荐使用动态数组,然后用sizeof应

一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式

 打印数组中的每个元素,打印每个元素的地址: #include <stdio.h> #include <stdlib.h>   void main(void) {     int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };     for (int *p = a; p < a + 10;p++)  //指针类型决定4个字节     {         printf("\n%p,%d", p, *p);    

怎么把文本文件写入二维数组并在组合框中输出,求大神帮忙啊帮忙

问题描述 [align=center]要求是:学院用组合框控件显示,数据来自txt资源文件.专业也用组合框控件显示,数据来自txt资源文件,并且可以根据学院名称显示对应的专业.这个是文本文件的内容:外国语学院英语专业日语专业,法语专业化工学院染整工程化工工程工商管理学院MBA工商管理专业会计专业[/align]我现在想把文本文件写入二维数组然后放到组合框里,弄了好久都弄不出,求大侠帮忙帮忙 解决方案 解决方案二:用二维数组恐怕不合适解决方案三:用一维数组保存学院名,用交错数组保存各学院的专业名,

c++-C++,为一个二维数组赋值,为什么到一半就停止了?

问题描述 C++,为一个二维数组赋值,为什么到一半就停止了? int preprocessing(char strFile[],IMAGEDATA imagedata,PIXEL **imagepixel,long *wid,long *hei) { FILE *fpi; imagedata= NULL;//动态分配存储原图片的像素信息的二维数组 long *width,*height;//新定义一个像素结构体二维数组 width=wid;height=hei; fpi=fopen(strFil

快速读取图片文件每一像素点颜色到二维数组!不要GetPixel!

问题描述 目前代码:DoUntily=jpgimage.Height'把图片读取到ptoall二维数组里DoUntilx=jpgimage.Widthptoall(x,y)=jpgimage.GetPixel(x,y)x=x+1Loopx=0y=y+1Loop jpgimage是bitmap类型,这样getpixel太慢了..有谁有更加快速的算法读取每一像素点rgb颜色到二维数组.. 解决方案 本帖最后由 gcyzzz 于 2014-12-28 22:01:41 编辑解决方案二:怎么破!!!解决

C++指针数组、数组指针、数组名及二维数组技巧汇总_C 语言

本文较为详细的分析了关于理解C++指针数组,数组指针,数组名,二维数组的一些技巧.是比较重要的概念,相信对于大家的C++程序设计有一定的帮助作用. 一.关于数组名 假设有数组: int a[3] = {1, 2, 3} 1.数组名代表数组第一个元素的地址,注意,不是数组地址(虽然值相等),是数组第一个元素地址,a 等同于 &a[0]; a+1是第二个元素的地址.比第一个元素地址a(或者&a[0])超出了一个整型指针的大小,在这里是4个字节(byte) cout << a <

怎么将数据库中数据存入二维数组?

问题描述 数据表为test,有四列test1,test2,test3,test3.怎样将它们的数据调出存入一个二维数据,然后进行矩阵的运算.附上范例代码的,优先给分. 解决方案 解决方案二:先读到DataTable,再赋给二维数组.解决方案三:用楼上的方法解决方案四:个人认为,与其将数据库数据读入多维数组,不如新建一个对象,将其读入对象,更加直观.而且不受类型的限制.解决方案五:DataTableda=newDataTable();//这句自己写获得数据List<List<string>