我记得当时我们师傅在对数据库操作的时候,C#,就是把数据库中的内容,放进内存的。用C#创建了一个内存表,C#好像有这个功能。
我觉得你可以自定义数据结构,模拟表的结构,然后,把数据库中所有数据读写近内存,只是内存开辟多一点就OK了。
其实数据库利用好了,你这个需求是不必要的。
@沧海一杰: 查询操作复杂而且慢。应该交给DB优化。放内存肯定是不可取的。
@[0]: 请不要答非所问,我是来咨询技术,不是让你来给我做策划的。
@沧海一杰: redis 查一下
第一、如果你想把数据放在内存(缓存)中,前提是数据量不大,如果很大内存是放不下的。
第二、既然数据量不大,但是查询又慢。只能说明你的SQL有问题。
第三、总和以上两点,优化SQL的效果要远高于映射内存。
第四、给分吧。
请不要答非所问,我是来咨询技术,不是让你来给我做策划的。
可以了解一下RAMDISK,把内存映射出一部分来当做硬盘,再把ACCESS文件放到内存硬盘上,效率可以明显提升。
sqlite支持内存数据库的功能,可以直接改用sqlite而不是access。或者从access提取数据到sqlite内存数据库,然后对内存数据库操作,最后再更新回access,这个过程你要做的事是两种数据库字段类型之间的转换和对应。
如果愿意换数据库,Sqlite是非常容易满足你的期望的。
如果坚持用Access,可以将所有表都创建对应的类,然后将所有数据都取出来,放到类list中,这个时候查询就使用Linq。
BTW:本来思考过让你放到DataSet的,但是想了下,发现查询比较不容易。