对数据库表上百万条的数据处理

时间:2021-01-02 21:45:44
我有一张表,大约有一千万条数据,每天我要对里面的一百万条左右的数据进行比对,更新数据状态.由于数据量太大,比对速度太慢.所以我考虑多台服务器同时运行进行比对.比如4台同时运行,电脑1运行:1到250000,电脑2运行:250000到500000,电脑3运行:500000到750000,电脑1运行:750000到1000000的数据.请问我要如何进行查询数据库了.让数据自动分配给每台服务器?

9 个解决方案

#1


更新状态时表是否有其它用户使用,如果没有,可以用left join 生成新表, 这样比update快很多

#2


一千万的数据用4台服务器,有点浪费了吧,你用的什么数据库?

#3


引用楼主 chenyang80425 的回复:
我有一张表,大约有一千万条数据,每天我要对里面的一百万条左右的数据进行比对,更新数据状态.由于数据量太大,比对速度太慢.所以我考虑多台服务器同时运行进行比对.比如4台同时运行,电脑1运行:1到250000,电脑2运行:250000到500000,电脑3运行:500000到750000,电脑1运行:750000到1000000的数据.请问我要如何进行查询数据库了.让数据自动分配给每台服务器?

一千万条嘛,小意思啦.

对相关字段(你要用到的)加上索引,就能解决问题.

#4


还可以用表分区,不同的分区放不同的磁盘.

#5


4台电脑来做??还不如一台电脑来分区表 毕竟跨电脑远程操作不方便 而且效率不高

#6


分区需要良好的设计CPU、HDD。。。估计楼主功力还没到位
1000万数据并不算大

#7


请问表如何进行分区?

#8


其实我这个速度慢是因为我在一个网站上抓取信息,把抓取的信息解析Html后,获得一个状态值,通过这个值更新数据库的相应记录。由于抓取速度慢。所以我考虑多台服务器抓取。但这样操作就会存在一个问题。几台服务器都同时去操作了同一条数据。造成性能无法提高。所以需要把表分成几个区,一台服务器记取一个分区的数据,这样就不会出现多台服务器对同一条记录进行操作的现象。
我用的sql server2000数据库,请问要如果进行表分区。

#9


同一台电脑做表分区了,把分区表放在不同磁盘分区上。

#1


更新状态时表是否有其它用户使用,如果没有,可以用left join 生成新表, 这样比update快很多

#2


一千万的数据用4台服务器,有点浪费了吧,你用的什么数据库?

#3


引用楼主 chenyang80425 的回复:
我有一张表,大约有一千万条数据,每天我要对里面的一百万条左右的数据进行比对,更新数据状态.由于数据量太大,比对速度太慢.所以我考虑多台服务器同时运行进行比对.比如4台同时运行,电脑1运行:1到250000,电脑2运行:250000到500000,电脑3运行:500000到750000,电脑1运行:750000到1000000的数据.请问我要如何进行查询数据库了.让数据自动分配给每台服务器?

一千万条嘛,小意思啦.

对相关字段(你要用到的)加上索引,就能解决问题.

#4


还可以用表分区,不同的分区放不同的磁盘.

#5


4台电脑来做??还不如一台电脑来分区表 毕竟跨电脑远程操作不方便 而且效率不高

#6


分区需要良好的设计CPU、HDD。。。估计楼主功力还没到位
1000万数据并不算大

#7


请问表如何进行分区?

#8


其实我这个速度慢是因为我在一个网站上抓取信息,把抓取的信息解析Html后,获得一个状态值,通过这个值更新数据库的相应记录。由于抓取速度慢。所以我考虑多台服务器抓取。但这样操作就会存在一个问题。几台服务器都同时去操作了同一条数据。造成性能无法提高。所以需要把表分成几个区,一台服务器记取一个分区的数据,这样就不会出现多台服务器对同一条记录进行操作的现象。
我用的sql server2000数据库,请问要如果进行表分区。

#9


同一台电脑做表分区了,把分区表放在不同磁盘分区上。