现代数据库提供缓存支持。大多数 ORM 框架也会缓存检索到的数据。为什么需要这种复制?
最佳答案
因为要从数据库的缓存中获取数据,你仍然需要:
- 从 ORM 的“ native ”查询格式生成 SQL
- 对数据库服务器进行网络往返
- 解析 SQL
- 从缓存中获取数据
- 将数据序列化为数据库的无线格式
- 将数据反序列化为数据库客户端库的格式
- 将数据库客户端库的格式转换为语言级别的对象(即任何东西的集合)
通过在应用程序级别进行缓存,您无需执行任何操作。通常,这是对内存中哈希表的简单查找。有时(如果使用 memcache 缓存)仍然存在网络往返,但所有其他事情都不再发生。
关于java - 如果数据库已经提供缓存,为什么还要使用应用程序级缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2963819/