首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果数据库不能放入内存,SQL服务器的性能会降低吗?

如果数据库不能放入内存,SQL服务器的性能会降低吗?
EN

Stack Overflow用户
提问于 2010-05-21 15:35:42
回答 4查看 1.1K关注 0票数 1

如果数据库大于RAM,SQL server的性能是否会急剧下降?或者只有索引必须放入内存中?我知道这很复杂,但凭经验?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-05-23 17:56:20

是的,当索引无法放入内存或执行全表扫描时。对不在内存中的数据执行聚合函数也需要多次(可能是随机的)磁盘读取。

对于一些基准:

查询时间将在很大程度上取决于受影响的数据当前是驻留在内存中还是需要访问磁盘。对于磁盘密集型操作,磁盘顺序和随机I/O性能的特征也很重要。

http://www.sql-server-performance.com/articles/per/large_data_operations_p7.aspx

因此,如果您的数据库大小>内存大小,则不要期望相同的性能。

编辑: http://highscalability.com/充满了这样的例子:

一旦数据库在内存中放不下,你就会碰壁。

http://highscalability.com/blog/2010/5/3/mocospace-architecture-3-billion-mobile-page-views-a-month.html

或者在这里:

即使DB大小仅比RAM大小大10%,该测试也显示性能下降了2.6倍。http://www.mysqlperformanceblog.com/2010/04/08/fast-ssd-or-more-memory/

不过,请记住,这是针对热数据的,即您想要查询但不能缓存的数据。如果可以,您可以轻松地使用显著较少的内存。

票数 1
EN

Stack Overflow用户

发布于 2010-05-21 16:03:36

只有工作集或公共数据或当前使用的数据需要放入缓冲区缓存(也称为数据缓存)。这也包括索引。

还有计划缓存,网络缓冲区+其他东西。微软在SQL Server的内存管理上投入了大量的工作,而且效果很好,IMHO。

一般来说,更多的RAM会有所帮助,但这并不是必需的。

票数 3
EN

Stack Overflow用户

发布于 2010-05-21 15:37:56

所有的数据库操作都必须通过写入磁盘来备份,拥有更多的RAM是有帮助的,但不是必须的。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2880302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档