解决方案 »
- 方法不能静态
- 请教一个学习方向的问题
- 使用hibernate如何写一个方法进行分页显示
- QQ客户端和QQ服务器之间是怎么通信的,QQ客户端会独立开一个线程和QQ服务器端进行SOCKET通信吗
- 关于<<tomcat与java web开发>>中创建struts的web应用的问题!
- JPA哪个版本开始支持Criteria API,相关的hibernate实现包要什么版本?
- 急,关于hibernate记录的插入!!!!
- 请问weblogic8.1中有没有weblogic_sp.jar?我的JB9找不到他,我也找不到他
- 求助:JAVA获取WINDOW下磁盘IO信息
- 在线问卷调查系统
- 对于一个频繁增删的表,如何建立索引,提高查询效率?
- new Date(Long l)日期错乱
我的回答不一定对,楼主可以试验下。另外,MongoDB不擅长写,最好加个类似Redis的中间服务来做。
2. B表是不是数据量很大?只有查询操作?有没有按主键或者索引查询?是否可以考虑分表?
3. A、B系统间网络如何?
A表insert比较少,update很多,经常都是上千条通过mongostat看的,锁模式不知道怎么查看
B表数据量不大,只有40W条数据,既有查询,也有更新,没有索引查询,分表占时不考虑
A,B系统都是走的内网,这个不是问题
A表insert比较少,update很多,经常都是上千条通过mongostat看的,锁模式不知道怎么查看
B表数据量不大,只有40W条数据,既有查询,也有更新,没有索引查询,分表占时不考虑
A,B系统都是走的内网,这个不是问题
update比Insert还要消耗性能,而且按照zhangjihao兄说的,你们用的这种数据库还不支持行锁,这个好难啊!能否考虑换个数据库?
B表的查询条件列增加索引吧,哪怕非唯一索引也好。
对mongoDB不是很熟悉,是不是你的表引擎选择不对啊,类似MYSQL的mysam和innodb的表类型选择不合适啊~
A表insert比较少,update很多,经常都是上千条通过mongostat看的,锁模式不知道怎么查看
B表数据量不大,只有40W条数据,既有查询,也有更新,没有索引查询,分表占时不考虑
A,B系统都是走的内网,这个不是问题
update比Insert还要消耗性能,而且按照zhangjihao兄说的,你们用的这种数据库还不支持行锁,这个好难啊!能否考虑换个数据库?
B表的查询条件列增加索引吧,哪怕非唯一索引也好。
换数据库的话只有redis了,准备加个唯一索引
还是得有个数据库载体,来承载数据的。
在没查清楚前,可以试试换一个SSD。
linux?
网络环境?
网络环境都是走的内网,主要问题是mongo一个库的collection锁表率很高(经常达到90%以上),导致另外一个库的collection处理很慢,导致connection数量居高不下,处理很慢,阻塞了B系统
2、一个mongo数据库,连接池就那么大,A锁表,A就处理慢了,剩下的继续创建连接,直接把连接池给占的差不多了,B哪来的连接可用?
我查看了mongo的可用链接数的,在高峰期的时候也就才2000不到的链接,mongo完全够用,问题是A表所用的链接不是很多,A表锁表率很大导致B表操作很慢,结果就是我问题描述那个样子,你可以看看我java对mongo配置那块
我查看了mongo的可用链接数的,在高峰期的时候也就才2000不到的链接,mongo完全够用,问题是A表所用的链接不是很多,A表锁表率很大导致B表操作很慢,结果就是我问题描述那个样子,你可以看看我java对mongo配置那块
1、你的mongo什么版本?配置的最大连接够吗?有的mongo版本默认的连接池很小的。
2、高峰期的可用连接数够吗?不是连接数。
mongo是长连接的,不自动释放。
池子泄漏了没?