问题描述
表结构:自动ID帐号密码IDabcxxxIDxyzxxx表很简单.数据500多条,但是使用很频繁,每2秒左右查询一次,用的条件是select密码from表名where帐号=abc,每次都读取关闭,对数据库和程序都有影响.我想问的是.能把这个表放内存里吗?或者其他办法.不用频繁读取数据库也行,谢谢
解决方案
解决方案二:
Asp.net?使用Cache缓存数据库吧
解决方案三:
引用1楼cadust的回复:
Asp.net?使用Cache缓存数据库吧
winform程序
解决方案四:
做一个SERVICE,在程序启动时把500多条数据读入,每一个客户端只与SERVICE交换数据,而不与数据库交换数据即可。再给SERVIE设一个机制,隔一定的时间把所有的数据刷新一下,以目前的需求,可以设为半年。
解决方案五:
存在dataset里面就行了
解决方案六:
引用4楼xhan2000的回复:
存在dataset里面就行了
同意
解决方案七:
引用4楼xhan2000的回复:
存在dataset里面就行了
能说详细点吗
解决方案八:
程序第一次运行时保存为Hasetable,然后下一个2秒直接从Hasetable检索.检索的时间复杂度是O(1)HashtableUserinfo=newHashtable;stringsql="Select账号,密码from表名"DataTabledt=SomeDBHelp.ExecDataTable(sql);for(inti=0;i<dt.Rows.Count;i++){Userinfo.Add(dt.Rows[0]["账号"],dt.Rows[0]["密码"]);}//判断用户是否在表中:if(Userinfo["用户名"]==null){//不在表中}else{//在表中}
解决方案九:
同意存放在DataSet里面定義一個全局的DataSet可隔一段時間就更新一下DataSet密碼比對在DataSet里完成
解决方案十:
DataSetda=newdataset();SqlDataAdaptersda=newsqlDataAdapter("select...",con);sda.Fill(da,""lendm);
解决方案十一:
dataset
解决方案十二:
dataset好,dataset本来就是为了满足你这种需要的
解决方案十三:
既然是Winform程序,建议使用WindowService/WebService,在Service里面实现数据缓存及刷新控制即可。如果我没有理解错误,享用DataSet的话可以选择保持进程的情况下保存数据,但会随着进程的终止而消失,并且每次启动进程都需要操作数据库。
解决方案十四:
mark
解决方案十五:
写成静态对象,再写一个标记。然后读静态对象就可以了。