Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows MongoDB在一段时间不活动后会变慢_Windows_Mongodb - Fatal编程技术网

Windows MongoDB在一段时间不活动后会变慢

Windows MongoDB在一段时间不活动后会变慢,windows,mongodb,Windows,Mongodb,我已经创建了一个使用MongoDB作为数据库引擎的网站,目前它还在建设中,所以流量不大。这意味着有一段时间没有请求,因此没有对数据库的查询 当我最终访问使用数据库的站点页面时,MongoDB似乎需要4到5秒才能返回,但从那个请求开始,它的速度非常快 我找不到任何关于超时或类似情况的信息。是否只是内存中的数据库被调出,需要几秒钟才能将其调回?它运行在Windows Server 2008虚拟机上,我将它作为Windows服务运行 任何帮助都将不胜感激。与大多数类型的数据库一样,最近的查询结果可以缓

我已经创建了一个使用MongoDB作为数据库引擎的网站,目前它还在建设中,所以流量不大。这意味着有一段时间没有请求,因此没有对数据库的查询

当我最终访问使用数据库的站点页面时,MongoDB似乎需要4到5秒才能返回,但从那个请求开始,它的速度非常快

我找不到任何关于超时或类似情况的信息。是否只是内存中的数据库被调出,需要几秒钟才能将其调回?它运行在Windows Server 2008虚拟机上,我将它作为Windows服务运行


任何帮助都将不胜感激。

与大多数类型的数据库一样,最近的查询结果可以缓存,执行计划可以存储在一些数据库中,但mongodb似乎不存储查询缓存

另外,为了提高性能,请确保您很好地实现了索引,这样您就不会错误地创建完整表扫描并利用某种形式的索引。使用explain命令查看查询执行计划。()

MongoDB处理缓存吗?

对。MongoDB将所有最近使用的数据保存在RAM中。如果您已经为查询创建了索引,并且工作数据集适合RAM,那么MongoDB将从内存中提供所有查询


MongoDB没有实现查询缓存:MongoDB直接从索引和/或数据文件提供所有查询。

与大多数类型的数据库一样,最近的查询结果可以缓存,执行计划可以存储在一些数据库中,但MongoDB似乎没有存储查询缓存

另外,为了提高性能,请确保您很好地实现了索引,这样您就不会错误地创建完整表扫描并利用某种形式的索引。使用explain命令查看查询执行计划。()

MongoDB处理缓存吗?

对。MongoDB将所有最近使用的数据保存在RAM中。如果您已经为查询创建了索引,并且工作数据集适合RAM,那么MongoDB将从内存中提供所有查询


MongoDB不实现查询缓存:MongoDB直接从索引和/或数据文件提供所有查询。

MongoDB允许操作系统内核处理内存中保存的内容(当前的“工作集”)。即使什么也没有发生,系统仍然会将对象从RAM分页到分页/交换,即使RAM容量没有被占用


解决这个问题的一种方法是监视空闲状态并在后台发送查询,甚至让后台进程跟踪磁盘上的文件。这对于启动后预热数据库特别有用,同样,如果您的使用形成周期性模式,也非常有用。

MongoDB允许操作系统内核处理内存中保存的内容(当前的“工作集”)。即使什么也没有发生,系统仍然会将对象从RAM分页到分页/交换,即使RAM容量没有被占用


解决这个问题的一种方法是监视空闲状态并在后台发送查询,甚至让后台进程跟踪磁盘上的文件。这对于启动后的预热数据库特别有用,同样,如果您的使用形成周期性模式,这也非常有用。

Hod您知道mongo方面的速度慢吗?它也可以是你的应用程序。我知道它是MongoDB,因为我总是先转到根页面,而根页面不使用DB。这总是很快,因为我有应用程序池回收和它被击中后,直接确保应用程序加载。当我点击其他非DB页面时,速度很快。这只是我第一次点击一个使用DB的页面,我得到了几秒钟的延迟。你知道mongo端的速度慢吗?它也可以是你的应用程序。我知道它是MongoDB,因为我总是先转到根页面,而根页面不使用DB。这总是很快,因为我有应用程序池回收和它被击中后,直接确保应用程序加载。当我点击其他非DB页面时,速度很快。这只是我第一次点击一个使用DB的页面,我得到了几秒钟的延迟。另外,操作系统在RAM中拥有一个LRU数据缓存,或者称为您的工作集,这不是MongoDB做的,它让所有内存管理由OSOne完成。另外,操作系统在RAM中拥有一个LRU数据缓存,或者称为您的工作集,不是MongoDB做到了这一点,它将所有内存管理留给了OSS。您还可以每隔一段时间使用一次touch()命令(MongoDB touch()命令不是unix命令)您也可以每隔一段时间使用一次touch()命令(MongoDB touch()命令不是unix命令)