解决数据库造成的瓶颈问题


公司内部有个支持系统,后面的数据源有几十个,需要查询各种不同的timesten和oracle数据库,使用c3p0来管理,由于其中的oracle数据库存储的数据量较大,其他程序也需要连接,造成了数据库的io和查询返回速度慢,成为了项目运行的瓶颈,严重的时候经常会造成等待查询的请求过多,把tomcat压垮(最大线程数超过200)。
针对上面的问题,大家有什么好的解决方案么?说下要求:
1. 数据库虽然是目前的主要瓶颈,但是不能从彻底改造,所以数据库上动文章可能性不大;
2. 建立缓存,很多数据都是只查一次,或者几次,而且数据海量,缓存的意义不大;
针对以上2点,大家有什么好的思路和方案么,来绕开因为数据库造成的问题,或者最起码不要因为数据库而压垮tomcat服务

架构设计 数据库

悲剧D宅男 12 years ago

有没有可能做数据库镜像服务器,单独供查询用?

根据你说的情况,要解决的是数据库访问瓶颈,又不能对数据库做改造,这种问题只能从软件技术层面和硬件层面两个方向去考虑。

在不能对原有系统做改造的前提下:
软件技术层面,也许只有缓存技术了,你的支持系统查询能划定范围的话,采用NoSQL技术应该能从一定程度上解决你的问题,因为是只读查询,采用NoSQL技术应该是非常适合的。
否则的话,硬件层面做扩展也许是唯一的办法了,如果你的支持系统重要度很高的话,建议和你们的上级沟通一下,毕竟能用资源来解决的问题其实就不是什么问题了,只要重视度足够!
采用数据库镜像解决这类问题很常见,比如在线的话费查询系统大部分都采用的是数据库镜像(因为不能影响到正常的计费系统)。

Dēvīl﹖ answered 12 years ago

Your Answer