一般什么情况下,数据库会大量占用内存导致最后的溢出情况?

一般什么情况下,数据库会大量占用内存导致最后的溢出情况?,第1张

我能想到的常见的和理论上的情况有下面几种:

1 假设同时有1000个人访问数据库,每人需要调用3M大小的数据,同时处理的数据量是3G,服务器只有2G内存。这种情况只是理论上,服务器数据库都有多线程阻塞技术,和事务处理逻辑,来保证数据处理的先后顺序,而不会是绝对的同时进行。不过一般的请求很少有超过50KB的,请求的数据量越大,同时连接的人数就越少,这是公认的数据库使用定律。

2 复杂的join语句,造成对多个大容量的表进行join操作。

3 数据库端过程函数编程。程序里面逻辑错误,数组分配不合理,或者陷入死循环,或者一次读出太多数据,然后一起处理。

sqlserver2008会把整个数据库缓存到内存里面,就是说数据库有多大,就会占内存多个空间,直到把内存占满为止。

这样可以提高数据库速度的,而且一般是没有问题的,如果要限制数据库占用内存控制,要在数据库里面限制,把占用内存改成最大,在SQL server management studio 里面右击服务器,点击属性,选择内存,选择最大内存。

还暂用了一些虚拟内存,MYSQL的配置文件(MYINI或者MYCNF或者命令行参数)可以指定用多少缓冲区等参数,用这些参数可以控制MYSQL占用多少内存。

操作系统有很高的智能性,对于应用程序分配的内存,没有经常使用的那部分就保留到磁盘里面,把真实内存留给频繁访问的内存区域,所以你也不用太担心,遇到性能问题的再考虑优化。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 一般什么情况下,数据库会大量占用内存导致最后的溢出情况?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情