我现在数据库有表A(id ,type,value)
其中id主键,type是索引,value是内容数据量40万多。
update 的where后面是id,现在30人同时连续的更新里面的数据,没人每次4条左右,更新完一条后就,立即更新下一条。
挺慢的。。大约1秒3条
而且CPU 老高
如何解决。
再:
select 的 where 
先type 后再 id 
先id 后再 type
直接id
哪个更好。。
希望高手多多指教。。

解决方案 »

  1.   

    把数据先放入datatable里,最后一次性更新就比较快了。
      

  2.   

    是否每人每次的更新,都有创建连接,打开连接,关闭连接,释放连接,其中的一个或几个操作?
    如果是的话,自己写个HBHelper类吧,统一管理连接,减少这些操作的次数。
      

  3.   


    谢谢提示
    还有没有更好的解决方案呢???
    由于是并发操作,所有人都做同样的事,就像买车票一样的感觉。。只不过我是有30个(以后会更多)。
    怎么保证每个人取得的数据不重复呢
    我现在最郁闷的就是这个了,
    现在让他们取的是不同的Type的数据,即不同的Group的数据
      

  4.   


    select 的 where
     先type 后再 id
     先id 后再 type
     直接id
     哪个更好。。SQL server没有差别,Oracle先id快执行慢的问题你可以在查询分析器里看看执行计划,是不是也一样慢?
      

  5.   


    CPU高
    以前也高过,是因为数据库没有index,查询没有index,后来添加了index,修改后效果非常明显。
    现在又在update时h了,估计还是数据库优化的问题。。
      

  6.   

    是不是机器配置有问题:
    intel(r)Pentium(r)Dual CPU E2160 @1.8H2G RAMCPU一直80-100
      

  7.   

    CPU高的问题解决了,谢谢大家的帮忙!!!!!
    现在我把一些问题总结如下:
    查询,插入,删除,update时的where尽量是主key
    没法主key的做index,index如果是相同的多,把它整成聚集的