对四千W条数据的数据库进行更新
2010-10-12 21:35
169 查看
由于我们是做服装生产管理系统的,我们的系统可以实时的收集到员工的生产每扎货的生产信息,一般二K人的客户,一个月收集到的数据是400万条,我们每个月初都需要计算每一扎货的生产时间(前一扎货的结束是本扎的开始,当然还得扣掉中间休息时间,第一扎货的开始时间取上班时间)而且还需要跟工序表计算每扎货的SAM以及单价。
1、现在遇到的问题是更新这么多数据该需要非常长的时间,有没有办法可以提速。
2、如果更新这么多数据会导致硬盘瓶劲,硬盘改写数据太多,磁盘读写速度跟不上。
3、这么多数据很容易产生锁,当然有的是旧锁,导致急时的数据采集上来时会超时。
实时数据采集,RFID ?
每个月400万条数据量不算什么...但你要一次更新400万就是系统设计有问题.
1/分区表我也想过,只是客户买的是正版式的SQL,那个版本不知道分区表。
2/其实我也感觉没有必分每次重新分析上一个月的所有的数据,其实过前一天或是几天的问题就不大。如果太多确是有问题。因为其中有很多不确定因素。如月初改单价,要对上个月整个月生效。。所以没得办法。
3、我们做过测试,一台数据库服务器,经过测试一天可以达到300W条。这个我们对自己以及客户对我们的要求。
即使改400万条数据,耗时也不会很久呀。。。偶有时也改BOM,800多万
还有计件绩效,3千多万。。。呵
仔细规划设计,没那么恐怖。提供有偿支持
企业版当然是支持分区,我们这里的计算与实际应用并在一起的。什么都需要实时的。所以你修改时会锁定该表,而锁定该表,其它的插入或是修改无法操作。
以今天的软硬件技术发展来看 4千万条记录的表 也只能算普通,
把你的数据库结构写出来 并讲清 你需要得到什么样的结果
让大家给你评点 你才会有更大的进步,
不要怕丢脸 讲得透彻 理解深刻 你才会有进步 还让更多的人能学到东西
期待你早点 写出你现有的表设计及索引 和期待的结果 让我们也可以练练手
要末数据库设计有问题,要末就是对业务的理解有问题,需要重新进行抽象。
1:如果月与月之间数据没有联系的话,月初将上个月的数据库备份出来,找台机器去算。
2:如果没上面的条件的话,找闲的时候算
3:如果没有上面2个条件的话,每天算。
历史数据,即使要在同一个库,也可以放在另一个表,这样,更新它们是不影响当前表的
提高速度的办法是将数据文件和日志文件放到不同的盘中,同时创建索引,这样能加快你的访问速度,也能提高更新速度。
主要是每个人需要重算,这个跟管理有关。列在计算放在临时表单中都是很快的,就是那个update很慢。由于这个表单用的比较大,每天的实时数据都需要进该表单,而且需要通过该表单检查是否有重复的现象。这个跟检查表中是否重复的不一样。
能不能按照日期每天生成一个表,这样一个表中的数据就不会太大!
对表操作的冲突就会大大减少,不过这样做你的程序肯定也要相应的改动!
从固定操作一个表变成动态操作表!
来源:nba直播
1、现在遇到的问题是更新这么多数据该需要非常长的时间,有没有办法可以提速。
2、如果更新这么多数据会导致硬盘瓶劲,硬盘改写数据太多,磁盘读写速度跟不上。
3、这么多数据很容易产生锁,当然有的是旧锁,导致急时的数据采集上来时会超时。
实时数据采集,RFID ?
每个月400万条数据量不算什么...但你要一次更新400万就是系统设计有问题.
1/分区表我也想过,只是客户买的是正版式的SQL,那个版本不知道分区表。
2/其实我也感觉没有必分每次重新分析上一个月的所有的数据,其实过前一天或是几天的问题就不大。如果太多确是有问题。因为其中有很多不确定因素。如月初改单价,要对上个月整个月生效。。所以没得办法。
3、我们做过测试,一台数据库服务器,经过测试一天可以达到300W条。这个我们对自己以及客户对我们的要求。
即使改400万条数据,耗时也不会很久呀。。。偶有时也改BOM,800多万
还有计件绩效,3千多万。。。呵
仔细规划设计,没那么恐怖。提供有偿支持
企业版当然是支持分区,我们这里的计算与实际应用并在一起的。什么都需要实时的。所以你修改时会锁定该表,而锁定该表,其它的插入或是修改无法操作。
以今天的软硬件技术发展来看 4千万条记录的表 也只能算普通,
把你的数据库结构写出来 并讲清 你需要得到什么样的结果
让大家给你评点 你才会有更大的进步,
不要怕丢脸 讲得透彻 理解深刻 你才会有进步 还让更多的人能学到东西
期待你早点 写出你现有的表设计及索引 和期待的结果 让我们也可以练练手
要末数据库设计有问题,要末就是对业务的理解有问题,需要重新进行抽象。
1:如果月与月之间数据没有联系的话,月初将上个月的数据库备份出来,找台机器去算。
2:如果没上面的条件的话,找闲的时候算
3:如果没有上面2个条件的话,每天算。
历史数据,即使要在同一个库,也可以放在另一个表,这样,更新它们是不影响当前表的
提高速度的办法是将数据文件和日志文件放到不同的盘中,同时创建索引,这样能加快你的访问速度,也能提高更新速度。
主要是每个人需要重算,这个跟管理有关。列在计算放在临时表单中都是很快的,就是那个update很慢。由于这个表单用的比较大,每天的实时数据都需要进该表单,而且需要通过该表单检查是否有重复的现象。这个跟检查表中是否重复的不一样。
能不能按照日期每天生成一个表,这样一个表中的数据就不会太大!
对表操作的冲突就会大大减少,不过这样做你的程序肯定也要相应的改动!
从固定操作一个表变成动态操作表!
来源:nba直播
相关文章推荐
- Yii model进行数据库数据更新
- Sqlserver 在查询分析器里如何访问远程的的数据库,进行数据查询更新等操作。
- 利用DataSet数据集进行数据库更新及数据表复制
- 利用触发器让两台服务器上的数据库的两张表进行数据同步更新
- python对MySQL进行数据的插入、更新和删除之后需要commit,数据库才会真的有数据操作。(待日后更新)
- Sqlserver 在查询分析器访问远程的数据库,进行数据查询更新
- 关于asp.net网站发布后,使用登录控件和注册控件时出现“数据库只读,无法进行数据更新”的解决方法
- ABAP基础-数据更新至数据库操作解析
- 不影响数据库运行如何快速恢复刚删除的表及其数据(三)如何恢复刚更新的数百万条数据
- ORACLE RMAN备份及还原 RMAN能够进行增量备份:数据库,表空间,数据文件
- 数据库的点数据根据行政区shp来进行行政区处理,python定时器实现
- 基于现有数据库的Code First模式迁移更新数据库
- SQL Server 之 在数据库之间进行数据导入导出
- 深入理解开源数据库中间件 Vitess:核心特性以及如何进行数据存储的堆叠
- 在Oracle的连接视图上进行数据更新操作
- 如何把批量数据导入到android 的 sqlite 数据库(更新中)
- 在Python的Django框架中更新数据库数据的方法
- SQL中Update...Select...的使用,关联查询后进行更新数据
- 数据库数据更新,不同表,不同数据库的更新方式