框架设计:实现数据的按需更新与插入的改进--用数据对比进一步说明
2011-04-04 17:41
525 查看
在发布完:框架设计:实现数据的按需更新与插入的改进 之后:
有网友表示不理解,于是这里给出一篇简单的说明对比,表示下改进后好处。
一:场景一:循环5次,同样也是重复提交的问题
using (MAction action = new MAction(TableNames.Blog_User))
{
for (int i = 0; i < 5; i++)
{
action.Set(Users.ID, 18);
action.Set(Users.UserName, "cyq1162");
action.Update();
}
Response.Write(action.DebugInfo);//输出调试信息
}
1:旧模式生成的SQL:
说明:
我们很直观的看到它重复的更新了5次。
2:改进后生成的SQL:
说明:
改进后,只是更新一次,其它四次并没有操作数据库。
二:场景二:模块缓存场景,其实和第一场景相似
MDataRow userInfo=null;//模拟行数据缓存
using (MAction action = new MAction(TableNames.Blog_User))
{
if (action.Fill(18))
{
userInfo = action.Data;
}
}
using (MAction action = new MAction(userInfo))//从缓存加载
{
action.Set(Users.UserName, "cyq1162");
action.Update();
Response.Write(action.DebugInfo);
}
1:旧模式生成的SQL:
说明:
无论存不存在缓存,更新同样被触发。
2:改进后生成的SQL:
说明:
有缓存数据时,相同的数据更新,则不会再被更新。
三:结论好处
实质性的减少数据库操作,从数据框架底层有效的防止无效的点击事件。
有网友表示不理解,于是这里给出一篇简单的说明对比,表示下改进后好处。
一:场景一:循环5次,同样也是重复提交的问题
using (MAction action = new MAction(TableNames.Blog_User))
{
for (int i = 0; i < 5; i++)
{
action.Set(Users.ID, 18);
action.Set(Users.UserName, "cyq1162");
action.Update();
}
Response.Write(action.DebugInfo);//输出调试信息
}
1:旧模式生成的SQL:
说明:
我们很直观的看到它重复的更新了5次。
2:改进后生成的SQL:
说明:
改进后,只是更新一次,其它四次并没有操作数据库。
二:场景二:模块缓存场景,其实和第一场景相似
MDataRow userInfo=null;//模拟行数据缓存
using (MAction action = new MAction(TableNames.Blog_User))
{
if (action.Fill(18))
{
userInfo = action.Data;
}
}
using (MAction action = new MAction(userInfo))//从缓存加载
{
action.Set(Users.UserName, "cyq1162");
action.Update();
Response.Write(action.DebugInfo);
}
1:旧模式生成的SQL:
说明:
无论存不存在缓存,更新同样被触发。
2:改进后生成的SQL:
说明:
有缓存数据时,相同的数据更新,则不会再被更新。
三:结论好处
实质性的减少数据库操作,从数据框架底层有效的防止无效的点击事件。
相关文章推荐
- 框架设计:实现数据的按需更新与插入的改进--用数据对比进一步说明
- 框架设计:实现数据的按需更新与插入的改进--用数据对比进一步说明
- 框架设计:实现数据的按需更新与插入的改进--用数据对比进一步说明
- 框架设计:实现数据的按需更新与插入的改进
- 框架设计:实现数据的按需更新与插入的改进
- 框架设计:实现数据的按需更新与插入的改进
- 框架设计:实现数据的按需更新与插入的改进
- 转载:mysql如果数据不存在,则插入新数据,否则更新的实现方法
- mysql 如果数据不存在,则插入新数据,否则更新的实现方法
- 用Maven整合SpringMVC+Spring+Hibernate 框架,实现简单的插入数据库数据功能(二)
- 一个通用的单元测试框架的思考和设计07-实现篇-自动管理测试数据-如何为自增长主键id赋值
- MySQL之——实现无数据插入,有数据更新
- ORM数据层框架的设计热点:更新指定的列的几种设计方案
- mysql insert插入时实现如果数据表中主键重复则更新,没有重复则插入的四种方法
- EasyPlat.net一行代码实现数据插入与更新
- Winform开发框架之数据即时更新的实现
- 用Maven整合SpringMVC+Spring+Hibernate 框架,实现简单的插入数据库数据功能
- 基于java的网络爬虫框架(实现京东数据的爬取,并将插入数据库)
- Python+Selenium框架设计篇之7-进一步实现POM和可能遇到问题解决办法
- SQLServer2008存储过程实现数据插入与更新