现代数据库提供缓存支持.大多数ORM框架也缓存检索到的数据.为什么这种重复是必要的?

推荐答案

因为要从数据库缓存中获取数据,您仍然必须:

  1. 从ORM的"本机"查询格式生成SQL
  2. 执行到数据库服务器的网络往返
  3. 解析SQL
  4. 从缓存中获取数据
  5. 将数据序列化为数据库的无线格式
  6. 将数据反序列化为数据库客户端库的格式
  7. 将数据库客户端库的格式转换为语言级对象(即,任何对象的集合)

通过在应用程序级别进行缓存,您不必执行任何操作.通常,它只是简单地查找内存中的哈希表.有时(如果使用memcache缓存)仍然存在网络往返,但是所有其他事情都不再发生.

Database相关问答推荐

Django Save 方法在try 向表中添加新记录时出错

如何在 Big Data 中进行模糊搜索

基于邮政编码的纬度和经度

TSQL - 表值函数中的 If..Else 语句 - 无法通过

如何连接到 MDF 数据库文件?

Android - SQLite 数据库存储在哪里?

库存数据库的最佳 struct

外键可以作为主键吗?

如何更改 SQLite 数据库列中的值?

是否有标准的Electron 商务数据库架构来将折扣/税收/礼券应用于产品?

日期格式的 Oracle SQL 查询

将一行连接到另一个表中的多行

将文本列设为唯一键

SQLite3 UNIQUE 约束失败错误

存储信用卡号 - PCI?

对于 N:M 关系,在 MongoDB 中推荐的级联删除等效项是什么?

试图在我的环境中设置 Postgres,但似乎无法获得 intidb 的权限

我将如何为读写操作实现单独的数据库?

从 SQLite 导出到 SQL Server

什么是 ACID 的真实示例?