是传输部分数据,而不是整张表。
我的方法是把数据进行gzip压缩之后,把gzip包上传上去,怎样?
可以每个gzip包放100条或者500条数据。在本地压缩之后,然后上传,再在目标站点解压,导入数据库。
好处就是
1、减少数据查询。如果不压缩,一次能上传100条数据,如果1000条数据,分10次。如果压缩的话,有可能分2次就行了。
2、文本数据压缩率很大。这样可以加速上传。
弊端暂时没想到,不知道大神们对这个方案有啥想法?有没有更好的办法?
11 个解决方案
#1
這個方案挺好的,不過如果兩個網站都是同一機房的,不壓縮比較好。
#2
我觉得 file_get_contents 就可以了,不必压缩上传
#3
不是同一个机房,而且面临的环境复杂,可能包括低内存、低网速的情况。不是给自己用的。
#4
低內存,低網速
壓縮是占cpu的,如果cpu高可以壓縮。如果cpu都低。。傳輸慢點算了。
壓縮是占cpu的,如果cpu高可以壓縮。如果cpu都低。。傳輸慢點算了。
#5
我决得可以通过API,一端进行数据的JSON输出,另一端接收,再处理。
分批次的进行接收,每次可以传100或其它数。
分批次的进行接收,每次可以传100或其它数。
#6
主要是考虑到两个因素
如果上传文章,比如我每次上传10篇文章,这10篇文章,有可能每篇100个字,有可能每篇1万个字。数据大小可大可小。
file_get_contents遇到这种情况,传输大点的数据,可能服务器就无法响应了。不好控制,如果处理,也可以,不过增加了程序的复杂性。
压缩起来的话,就不容易出现数据包过大的问题,因为200KB的文本,我压缩起来才十几KB,即使内存不大,网速不高的情况下,还是能够稳定的上传。
这就相当于我把1万个苹果从A城市运往B城市。我打包成每箱100个,100个箱子的数据运送,就好控制了。
#7
如果每批100,传输的是文章呢?每篇文章有可能一万个字。也有可能100个字。这个无规律的。遇到这种情况,我感觉大数据网页会无法响应。
#8
不要想当然了
我说不要压缩上传,并没有排除压缩传输
其实你的这些事情本该是数据库同步机制完成的
我说不要压缩上传,并没有排除压缩传输
其实你的这些事情本该是数据库同步机制完成的
#9
mysql数据同步? crotab处理不行?
#10
直接取出来json传输,现在的服务器都自带压缩功能,然后在目标服务器处理入库
#11
感觉楼主的逻辑有点奇怪,这个本地打包是使用php从数据库导出数据写入文件,然后在把文件打包,然后上传(这个是手动的么),上传到目标站后再在目标站点解压(这个是手动的么)利用php解压出文件再load data到数据的操作么 。不知道我说的过程是不是楼主的意思。如果是的话,难道不可以在本地建立一张临时表,将需要的数据放到临时表里,在通过数据库的复制机制,直接复制到目标网站的数据库表么。。
#1
這個方案挺好的,不過如果兩個網站都是同一機房的,不壓縮比較好。
#2
我觉得 file_get_contents 就可以了,不必压缩上传
#3
不是同一个机房,而且面临的环境复杂,可能包括低内存、低网速的情况。不是给自己用的。
#4
低內存,低網速
壓縮是占cpu的,如果cpu高可以壓縮。如果cpu都低。。傳輸慢點算了。
壓縮是占cpu的,如果cpu高可以壓縮。如果cpu都低。。傳輸慢點算了。
#5
我决得可以通过API,一端进行数据的JSON输出,另一端接收,再处理。
分批次的进行接收,每次可以传100或其它数。
分批次的进行接收,每次可以传100或其它数。
#6
主要是考虑到两个因素
如果上传文章,比如我每次上传10篇文章,这10篇文章,有可能每篇100个字,有可能每篇1万个字。数据大小可大可小。
file_get_contents遇到这种情况,传输大点的数据,可能服务器就无法响应了。不好控制,如果处理,也可以,不过增加了程序的复杂性。
压缩起来的话,就不容易出现数据包过大的问题,因为200KB的文本,我压缩起来才十几KB,即使内存不大,网速不高的情况下,还是能够稳定的上传。
这就相当于我把1万个苹果从A城市运往B城市。我打包成每箱100个,100个箱子的数据运送,就好控制了。
#7
如果每批100,传输的是文章呢?每篇文章有可能一万个字。也有可能100个字。这个无规律的。遇到这种情况,我感觉大数据网页会无法响应。
#8
不要想当然了
我说不要压缩上传,并没有排除压缩传输
其实你的这些事情本该是数据库同步机制完成的
我说不要压缩上传,并没有排除压缩传输
其实你的这些事情本该是数据库同步机制完成的
#9
mysql数据同步? crotab处理不行?
#10
直接取出来json传输,现在的服务器都自带压缩功能,然后在目标服务器处理入库
#11
感觉楼主的逻辑有点奇怪,这个本地打包是使用php从数据库导出数据写入文件,然后在把文件打包,然后上传(这个是手动的么),上传到目标站后再在目标站点解压(这个是手动的么)利用php解压出文件再load data到数据的操作么 。不知道我说的过程是不是楼主的意思。如果是的话,难道不可以在本地建立一张临时表,将需要的数据放到临时表里,在通过数据库的复制机制,直接复制到目标网站的数据库表么。。