最近在公司做项目,发现很多问题,目前公司所使用的是三层架构,在这里我的疑惑时如何减少UI与数据库的交互,从而提升网站的整体性能。从实际上来讲,SQL数据表优化能从很大程度上提升网站的整体性能,但是目前还没有涉及到哪些发面,所以先说减少UI界面与SQL数据库的交互。(笔者不是专业从事网站营运的,只是有疑惑,写出来分享下,如您有较好的方案,欢迎提供,在此致谢。)
为了方便,我们用一个列子来讲解。假定我们有一个实体类UserInfo。即数据库中存在相应的数据表UserInfo
在实际开发中,我们会遇到,本来查询一次表就可以得到劝不动额数据,没必要反复查询同一张表,这样的话降低了查询速度,从一定程度上影响到了系统的整体性能。那么如何解决这种一次查询多次复用的需求呢?
朋友给我提供了一种比较简单的方法--Lambda
思路:只查询一次,存在一个list里面,直接在前台操作list就OK了。
Eg:用户实体
list<User> userList=GetAllUserList();//从数据库中查出所有用户
如果需要通过角色ID查数据可以这样:
List<User> userListByID=userList.where(o=>o.ID=123);
通过状态ID查询
List<User> userListBystutaID=userList.where(o=>o.stutaId=123);
当然这里的123也可以是传递过来的参数。
实列代码:
//获取数据源
private static List<teacherInfo> teacherlist = TeacherInfoManagerLFK.GetAllTeacherInfo();
//获取园长信息
public static List<teacherInfo> GetListByMaster(Boolean isgarmaster)
{
List<teacherInfo> teacherlist1 = teacherlist.Where(o=>o.Isgarmaster==isgarmaster).ToList();
return teacherlist1;
}
至于第二种方法是、。使用缓存。笔者在研究中。。。。