当前位置: 代码迷 >> C# >> 大伙给推荐个适合c#的内存数据库
  详细解决方案

大伙给推荐个适合c#的内存数据库

热度:80   发布时间:2016-05-05 04:02:26.0
大家给推荐个适合c#的内存数据库啊
现在用List<数据类>操作的数据量大就不给力了经常崩溃。
有没有能多机连接并且适合c#使用的内存数据库给推荐个啊。
------解决思路----------------------
自己用HashTable、BinaryTree等数据结构去实现
------解决思路----------------------
如果想提高速度,可以用Dictionary泛型类,

如果想查询灵活,可以用DataTable类,

其实如果多机应用的话,还不如直接用sql server,用内存数据更麻烦也不会提高速度,
------解决思路----------------------
那是你的代码健壮性差。

几千条根本不可能导致list出错。
------解决思路----------------------
你应该先确定下你是因为什么原因挂的。
------解决思路----------------------
引用:
那是你的代码健壮性差。

几千条根本不可能导致list出错。

同意。

你的“悲伤的老板”看来需要给你再次加薪水啊。
------解决思路----------------------
ArrayList,这个集合体积能够自动扩大2倍,可以保证新的内存连续性,防止在短时间内,内存连续的搬迁,减少性能的损耗。所以ArrayList里存的数据,永远是连续的内存空间。
------解决思路----------------------
其实HashTable和字典Dictionary也不错,如果想了解之间的性能,最好到网上查询,根据自己的需要,选择适合的集合。
------解决思路----------------------
几千条数据量不算大吧,你需要从其它方面着手,比如对数据操作的行为,List<T> 没那么脆弱
------解决思路----------------------
代码问题,加异常捕获,代码走查,找到bug所在。我们项目中dictionary套list,几十万的数据频繁更新也没有造成程序崩溃
------解决思路----------------------
使用DataSet 或DataTable是最好不过了
------解决思路----------------------
并发锁问题?
------解决思路----------------------
前段时间处理的数据大概也是几天条,用的List<T>,还可以。

------解决思路----------------------
cyq.data 的文本数据库可以试试。
------解决思路----------------------
经常崩溃的原因你得自己找啊,如果使用了多线程,一定是你没有做好保护措施吧。
------解决思路----------------------
引用:
Quote: 引用:

如果想提高速度,可以用Dictionary泛型类,

如果想查询灵活,可以用DataTable类,

其实如果多机应用的话,还不如直接用sql server,用内存数据更麻烦也不会提高速度,


不是为了快,是因为有几千条记录频繁修改。现在用的List<> 经常挂。 Dictionary会好些吗?


才几千条就会挂,太不可思意了。我们做游戏,那会数据都是几万条放到List里进行内存操作都不会挂。
你是不是有用到多线程处理了。
------解决思路----------------------
Dictionary只是比List快,崩溃问题不一定能解决,不过Dictionary比List稳定的地方是,Dictionary是线程安全的,多线程不需要lock也可以使用Dictionary,

不过前面几位说的很有道理,是你的程序写得不够严谨,几千条数据应该不算复杂,

引用:
Quote: 引用:

如果想提高速度,可以用Dictionary泛型类,

如果想查询灵活,可以用DataTable类,

其实如果多机应用的话,还不如直接用sql server,用内存数据更麻烦也不会提高速度,


不是为了快,是因为有几千条记录频繁修改。现在用的List<> 经常挂。 Dictionary会好些吗?

------解决思路----------------------
引用:
Dictionary只是比List快,崩溃问题不一定能解决,不过Dictionary比List稳定的地方是,Dictionary是线程安全的,多线程不需要lock也可以使用Dictionary,

不过前面几位说的很有道理,是你的程序写得不够严谨,几千条数据应该不算复杂,

Quote: 引用:

Quote: 引用:

如果想提高速度,可以用Dictionary泛型类,

如果想查询灵活,可以用DataTable类,

其实如果多机应用的话,还不如直接用sql server,用内存数据更麻烦也不会提高速度,


不是为了快,是因为有几千条记录频繁修改。现在用的List<> 经常挂。 Dictionary会好些吗?

千万别说Dictionary是线程安全的,这可纯粹是误导别人
            for (int i = 0; i < 100; i++)
            {
                Dictionary<int, object> temp = new Dictionary<int, object>();

                for (int j = 0; j < 10; j++)
                {
                    int m = j;
                    ThreadPool.QueueUserWorkItem((o) =>
                    {
                        temp.Add(m, new object());
                    });  
                }   
            }

自己跑跑看看,放按钮的点击事件里,然后你多点几次看看。人家Dictionary可没说自己是线程安全的,ConcurrentDictionary才是线程安全的。
------解决思路----------------------
几千行就挂掉……  
------解决思路----------------------
引用:
Dictionary只是比List快,崩溃问题不一定能解决,不过Dictionary比List稳定的地方是,Dictionary是线程安全的,多线程不需要lock也可以使用Dictionary,
 

Dictionary不是线程安全的,对于你的多线程环境可以试着用ConcurrentDictionary类来储存。
  相关解决方案