什么是主键缓存?
主键缓存
Linq to sql对查询过的对象进行缓存,之后的如果只根据主键查询一条记录的话会直接从缓存中读取。比如下面的代码:
Customer c1 = ctx.Customers.Single(customer => customer.CustomerID == "ANATR");
c1.ContactName = "zhuye";
Customer c2 = ctx.Customers.Single(customer => customer.CustomerID == "ANATR");
Response.Write(c2.ContactName);
由于没有提交修改,所以数据库中的记录还是没有更新。由于这个特性,我们在使用存储过程作为实体更新方法的时候就要当心了,存储过程书写错误,即使你提交了修改也很可能导致缓存中的数据和数据库中的数据不一致,引起不必要的麻烦。
以上是书中内容,语句都看得懂,问题是什么是主键缓存?
Linq to sql对查询过的对象进行缓存,之后的如果只根据主键查询一条记录的话会直接从缓存中读取。比如下面的代码:
Customer c1 = ctx.Customers.Single(customer => customer.CustomerID == "ANATR");
c1.ContactName = "zhuye";
Customer c2 = ctx.Customers.Single(customer => customer.CustomerID == "ANATR");
Response.Write(c2.ContactName);
由于没有提交修改,所以数据库中的记录还是没有更新。由于这个特性,我们在使用存储过程作为实体更新方法的时候就要当心了,存储过程书写错误,即使你提交了修改也很可能导致缓存中的数据和数据库中的数据不一致,引起不必要的麻烦。
以上是书中内容,语句都看得懂,问题是什么是主键缓存?
...全文
相关推荐
经典Python面试题之数据库和缓存 共46道题.pdf
如何开启慢日志查询?使用 MySQL 的慢日志功能。3. 索引种类:普通索引、唯一索引、复合索引等。4. 主键和外键的区别:主键是唯一标识表的列,外键是表中的一个或多个列,用于引用其他表的主键。
在Spring Boot中如何使用数据缓存
以`Person`为例,使用`@Entity`注解表示这是一个JPA实体,`@Id`和`@GeneratedValue`用于标识主键,其他属性定义相应的getter和setter方法:```java@Entitypublic
Mybatis-03 SQL映射文件
例如: ```xml <?xml version="1.0" encoding="UTF-8" ?> <!
ppt_all_in_one.zip
- 替代方案:探讨UUID、雪花ID等非自增主键的优缺点和适用场景。8. **Redis架构很难懂?
MySQL 用 limit 为什么会影响性能?.docx
为什么这个查询语句会这么慢?我们可以通过分析查询过程来找到答案。


LINQ
