当前位置:  开发笔记 > 后端 > 正文

Memcached vs SQL Server缓存

如何解决《MemcachedvsSQLServer缓存》经验,为你挑选了1个好方法。

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

但是,SQL Server为数据库中的对象提供了自己的内存缓存.检索数据时,SQL Server会维护其缓存并将(如果需要)从其内存中提取行而不会访问磁盘.

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

我读过的大多数文章都是社交网站,大多数都使用MySql.但是,一篇关于使用SQL Server的MySpace 的文章表明,该系统也使用了缓存.

此文章解释时,应使用缓存,这文章是对位.



1> Klaus..:

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

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

但他没有缓存:
- 来自查询的结果

例如,您有一个复杂的查询,它对大量数据使用了一些聚合(想想:我们在客户数据库中有多少个不同的国家:来自客户GROUP BY国家/地区的SELECT DISTINCT国家/地区)

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

当您使用memcached时,您可以存储结果集的几行,并在不连接到数据库服务器的情况下反复重复使用它们.因此需要从数据库服务器获得一些负载.
注意:如果您的数据在SQL服务器上发生变化,请注意一些陈旧的数据!

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有