数据库更新慢的问题

angel6709 2009-11-20 11:39:49
我现在数据库有表A(id ,type,value)
其中id主键,type是索引,value是内容

数据量40万多。
update 的where后面是id,

现在30人同时连续的更新里面的数据,没人每次4条左右,更新完一条后就,立即更新下一条。
挺慢的。。大约1秒3条。。。
而且CPU 老高。。。
如何解决。。。。


再:
select 的 where
先type 后再 id
先id 后再 type
直接id
哪个更好。。


希望高手多多指教。。。。。


...全文
363 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel6709 2009-11-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 agentianle 的回复:]
考虑到高并发的情况,不如写个缓冲类,所有修改请求并非直接执行入库,而是被缓冲类收集,等待一定时间后,如1~3秒后,由缓冲类负责将此段时间内的请求统一入库
[/Quote]

谢谢提示。。。
还有没有更好的解决方案呢???
由于是并发操作,所有人都做同样的事,就像买车票一样的感觉。。只不过我是有30个(以后会更多)。
怎么保证每个人取得的数据不重复呢。。。
我现在最郁闷的就是这个了,
现在让他们取的是不同的Type的数据,即不同的Group的数据
suiyuan110 2009-11-20
  • 打赏
  • 举报
回复
up!!!!!!
ytc666 2009-11-20
  • 打赏
  • 举报
回复
关注
liaoyukun111 2009-11-20
  • 打赏
  • 举报
回复
学习了,还真没有搞过大量数据
天乐 2009-11-20
  • 打赏
  • 举报
回复
当然,8楼所述的方法,仅适合各项数据间无复杂依赖关系、且稍微等待一下并无不可的数据处理。
天乐 2009-11-20
  • 打赏
  • 举报
回复
考虑到高并发的情况,不如写个缓冲类,所有修改请求并非直接执行入库,而是被缓冲类收集,等待一定时间后,如1~3秒后,由缓冲类负责将此段时间内的请求统一入库
angel6709 2009-11-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dreamsnake 的回复:]
是否每人每次的更新,都有创建连接,打开连接,关闭连接,释放连接,其中的一个或几个操作?
如果是的话,自己写个HBHelper类吧,统一管理连接,减少这些操作的次数。
[/Quote]
不好意思,我刚才出去吃饭了。
连接是一直打开的。。。
hhc123 2009-11-20
  • 打赏
  • 举报
回复
不要答了,人家星多是在跟我们开玩笑的吧
dreamsnake 2009-11-20
  • 打赏
  • 举报
回复
是否每人每次的更新,都有创建连接,打开连接,关闭连接,释放连接,其中的一个或几个操作?
如果是的话,自己写个HBHelper类吧,统一管理连接,减少这些操作的次数。
lovelan1748 2009-11-20
  • 打赏
  • 举报
回复
存储过程吧
这个得去数据库区问问
hhc123 2009-11-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hhc123 的回复:]
用存储过程
[/Quote]
当我没说过
0o小石头o0 2009-11-20
  • 打赏
  • 举报
回复
把数据先放入datatable里,最后一次性更新就比较快了。
hhc123 2009-11-20
  • 打赏
  • 举报
回复
用存储过程
一游 2009-11-20
  • 打赏
  • 举报
回复
将更新和数据库处理分成在多台机上

数据文件建文件组,单独存放

再其它的不知你具体情况,也不好细说!~

angel6709 2009-11-20
  • 打赏
  • 举报
回复
CPU高的问题解决了,谢谢大家的帮忙!!!!!
现在我把一些问题总结如下:
查询,插入,删除,update时的where尽量是主key
没法主key的做index,index如果是相同的多,把它整成聚集的
angel6709 2009-11-20
  • 打赏
  • 举报
回复
是不是机器配置有问题:
intel(r)Pentium(r)Dual CPU E2160 @1.8H

2G RAM

CPU一直80-100
angel6709 2009-11-20
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 agentianle 的回复:]
“数据量40万多。”

老实说,一点也算不上大。

问题的关键还是在于高并发吧。

“由于是并发操作,所有人都做同样的事,就像买车票一样的感觉。。只不过我是有30个(以后会更多)。
怎么保证每个人取得的数据不重复呢。。。 ”

到底和卖车票有多相似呢?
并发操作同一条数据的话,还得考虑锁的问题了……

你不如把你的需求的关键点整理清楚,贴出来给大家看看,大家或许是有更好的建议给你
[/Quote]

先谢谢了

是这样的。
有很多很多的图片,例如高考成绩单。。。
我开发的系统就是要把这些图片的信息输入到数据库中。cs架构。
有很多人同时向系统输入信息。。
他们不要调取同样的图片。即,不要重复录入
他们应该有一个协调工作的问题。。
怎么处理。
天乐 2009-11-20
  • 打赏
  • 举报
回复
“数据量40万多。”

老实说,一点也算不上大。

问题的关键还是在于高并发吧。

“由于是并发操作,所有人都做同样的事,就像买车票一样的感觉。。只不过我是有30个(以后会更多)。
怎么保证每个人取得的数据不重复呢。。。 ”

到底和卖车票有多相似呢?
并发操作同一条数据的话,还得考虑锁的问题了……

你不如把你的需求的关键点整理清楚,贴出来给大家看看,大家或许是有更好的建议给你
angel6709 2009-11-20
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 wuyq11 的回复:]
数据量很大,分区和实批操作
建立索引,提高查询效率
[/Quote]

分区和实批操作 能再详细 指点一下吗。
期待中。。。。
谢谢!!!
  • 打赏
  • 举报
回复
原因:优化你的存储过程和视图。
加载更多回复(4)

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧