现在想把连接数控制在一定的范围内,让数据库操作都同时只用几个连接,就是当每次来新的请求时我都给他几个同样的连接,不去申请新的物理连接,这样可以吗?
另外,多少个连接数到底是对性能来说比较好的呢?
10 个解决方案
#1
考虑换个容器或者连接池
#2
在关于数据库连接池的配置中,肯定可以做到,不过要看你用的是什么数据库,采用的是什么连接池了,这都有关系,关于连接的数量,就要根据具体情况来定,并且还需要在调试中最后确定!
#3
我已经试过了,感觉只用几个连接是完全可以的
#4
我也在做同样的连接池,可以交流一下
#5
楼上,你是说自己手工用代码写连接池吗
#6
数据库引擎里面应该有连接池的设置
不过你的情况,我想也可以用线程池。类似IIS这样的服务只需要发送数据,适合重复使用线程和数据库连接
不过你的情况,我想也可以用线程池。类似IIS这样的服务只需要发送数据,适合重复使用线程和数据库连接
#7
考虑用个中间表
怎么样
怎么样
#8
但是连接复用就不能用于事务了,这一点不知道怎么解决
很想问一些,不知道商用的产品中数据库连接池是怎么实现的?是不是用一个池缓存连接?
但是这样如果大量用户并发请求时,一时拿不到连接是等待一下吗?还是其他的方法?
很想问一些,不知道商用的产品中数据库连接池是怎么实现的?是不是用一个池缓存连接?
但是这样如果大量用户并发请求时,一时拿不到连接是等待一下吗?还是其他的方法?
#9
连接复用不代表一个要求都给任意一个连接
应该是一个要求给一个连接用完返回,在这段时间是独占的。
所以也可以用事务
大量用户并发请求时,的确会有一时拿不到连接的情况,一般来说,首要的是估计多大的并发连接,来确定一共要多少个连接。
拿不到的话等待一段时间,超时就报错
反正我设置的都是十个左右连接。
其实主要省却了建立连接的开销,,这个很大的
应该是一个要求给一个连接用完返回,在这段时间是独占的。
所以也可以用事务
大量用户并发请求时,的确会有一时拿不到连接的情况,一般来说,首要的是估计多大的并发连接,来确定一共要多少个连接。
拿不到的话等待一段时间,超时就报错
反正我设置的都是十个左右连接。
其实主要省却了建立连接的开销,,这个很大的
#10
如果一时取不到连接,是会等待一段时间的(最大等待时间),如果可能,还有等待次数。
我自己写的连接池程序中就有等待时间和等待次数。所以
最大等待时间 = 等待时间 * 等待次数
之后如果还没有取到连接,就只好返回null。并记录日志中(以便于日后性能调优)。
我自己写的连接池程序中就有等待时间和等待次数。所以
最大等待时间 = 等待时间 * 等待次数
之后如果还没有取到连接,就只好返回null。并记录日志中(以便于日后性能调优)。
#1
考虑换个容器或者连接池
#2
在关于数据库连接池的配置中,肯定可以做到,不过要看你用的是什么数据库,采用的是什么连接池了,这都有关系,关于连接的数量,就要根据具体情况来定,并且还需要在调试中最后确定!
#3
我已经试过了,感觉只用几个连接是完全可以的
#4
我也在做同样的连接池,可以交流一下
#5
楼上,你是说自己手工用代码写连接池吗
#6
数据库引擎里面应该有连接池的设置
不过你的情况,我想也可以用线程池。类似IIS这样的服务只需要发送数据,适合重复使用线程和数据库连接
不过你的情况,我想也可以用线程池。类似IIS这样的服务只需要发送数据,适合重复使用线程和数据库连接
#7
考虑用个中间表
怎么样
怎么样
#8
但是连接复用就不能用于事务了,这一点不知道怎么解决
很想问一些,不知道商用的产品中数据库连接池是怎么实现的?是不是用一个池缓存连接?
但是这样如果大量用户并发请求时,一时拿不到连接是等待一下吗?还是其他的方法?
很想问一些,不知道商用的产品中数据库连接池是怎么实现的?是不是用一个池缓存连接?
但是这样如果大量用户并发请求时,一时拿不到连接是等待一下吗?还是其他的方法?
#9
连接复用不代表一个要求都给任意一个连接
应该是一个要求给一个连接用完返回,在这段时间是独占的。
所以也可以用事务
大量用户并发请求时,的确会有一时拿不到连接的情况,一般来说,首要的是估计多大的并发连接,来确定一共要多少个连接。
拿不到的话等待一段时间,超时就报错
反正我设置的都是十个左右连接。
其实主要省却了建立连接的开销,,这个很大的
应该是一个要求给一个连接用完返回,在这段时间是独占的。
所以也可以用事务
大量用户并发请求时,的确会有一时拿不到连接的情况,一般来说,首要的是估计多大的并发连接,来确定一共要多少个连接。
拿不到的话等待一段时间,超时就报错
反正我设置的都是十个左右连接。
其实主要省却了建立连接的开销,,这个很大的
#10
如果一时取不到连接,是会等待一段时间的(最大等待时间),如果可能,还有等待次数。
我自己写的连接池程序中就有等待时间和等待次数。所以
最大等待时间 = 等待时间 * 等待次数
之后如果还没有取到连接,就只好返回null。并记录日志中(以便于日后性能调优)。
我自己写的连接池程序中就有等待时间和等待次数。所以
最大等待时间 = 等待时间 * 等待次数
之后如果还没有取到连接,就只好返回null。并记录日志中(以便于日后性能调优)。