gpt4 book ai didi

sql-server - Memcached 与 SQL Server 缓存

转载 作者:行者123 更新时间:2023-12-02 01:27:01 25 4
gpt4 key购买 nike

我读过很多文章,建议将 Memcached(或 Velocity 等)放在数据库前面比直接访问数据库更有效。它会通过查找内存缓存中的数据来减少对数据库的命中次数,这比命中数据库要快。

但是,SQL Server 对于数据库中的对象拥有自己的内存缓存。检索数据时,SQL Server 会维护其缓存并(如有必要)从内存中提取该行而不是访问磁盘。

如果 SQL Server 有自己的缓存,那么外部 Memcached(或类似)服务器有什么好处?

我读过的大多数文章都是围绕社交网站的,这些网站大多使用 MySql。然而,article关于使用 SQL Server 的 MySpace,建议在该系统上也使用缓存。

这个article解释何时应使用缓存,此 article是对位法。

最佳答案

So if SQL Server has it's own cache, what is the benefit of an external Memcached (or similar) server?

是的,SQL Server 有自己的缓存,但他只缓存:
- 查询计划
- 数据库文件中的页面

但他不缓存:
- 查询结果

例如您有一个复杂的查询,它对大量数据使用一些聚合(想想:我们的客户数据库中有多少个不同的国家: 从客户分组中选择不同的国家/地区(按国家/地区)

SQL Server 将扫描整个客户表,但结果集只有几个条目长。当您重新发出查询时,SQL Server 将重用查询计划并重新扫描客户表,(如果幸运的话,这些页面仍在内存中)

当您使用 memcached 时,您可以存储结果集的几行并一遍又一遍地重复使用它们,而无需连接到数据库服务器。因此它需要数据库服务器的一些负载。
注意:如果您的数据在 SQL 服务器上发生更改,请注意一些过时的数据!!

关于sql-server - Memcached 与 SQL Server 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3084789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com