框架设计:实现数据的按需更新与插入的改进--用数据对比进一步说明
来源:互联网 发布:pdf阅读器哪个好 知乎 编辑:程序博客网 时间:2024/06/07 13:17
在发布完:框架设计:实现数据的按需更新与插入的改进 之后:
有网友表示不理解,于是这里给出一篇简单的说明对比,表示下改进后好处。
一:场景一:循环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);//输出调试信息
}
{
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);
}
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:
说明:
有缓存数据时,相同的数据更新,则不会再被更新。
三:结论好处
实质性的减少数据库操作,从数据框架底层有效的防止无效的点击事件。
0 0
- 框架设计:实现数据的按需更新与插入的改进--用数据对比进一步说明
- 框架设计:实现数据的按需更新与插入的改进
- 电影院的设计与实现(改进更新)
- hibernate与jdbc在插入数据上的速度对比
- 几种大数据框架的对比
- 数据的插入、更新、删除
- 插入数据与更新数据
- 1014_数据的插入与实现
- 海量数据的插入时间对比
- JDBC各种插入数据的速度对比
- .net对海量数据的插入与更新
- .net对海量数据的插入与更新
- mysql运算符与数据的插入,更新,删除
- MySQL 入门 之 数据的插入、查询、更新与删除
- 用 Entity Framework 与 Json.NET 实现数据的按需更新
- 插入更新与删除数据
- 插入、更新与删除数据
- Winform开发框架之数据即时更新的实现
- 秋色园QBlog技术原理解析:博客一键安装工具技术实现[附源码下载]
- 秋色园QBlog技术原理解析:页面Post提交机制(十一)
- CYQ.Data 数据框架 应用示例 JSON通讯篇
- 认清Android框架 MVC,MVP和MVVM
- 框架设计:实现数据的按需更新与插入的改进
- 框架设计:实现数据的按需更新与插入的改进--用数据对比进一步说明
- DataReader 链接关闭解惑篇
- 框架设计之菜鸟漫漫江湖路系列 开篇
- 秋式开源团队:第一期项目论坛数据库设计文档
- 框架设计之菜鸟漫漫江湖路系列 一:菜鸟入门
- 框架设计之菜鸟漫漫江湖路系列 二:自学求索
- 浅谈网络封锁与突破
- 秋式开源团队:权限管理系统需求与分析
- 授权协议