php进行数据传输

时间:2022-01-31 21:26:32
用php在两个网站直接传输数据,数据内容就是数据库里面的数据。用什么方法最好?

是传输部分数据,而不是整张表。

我的方法是把数据进行gzip压缩之后,把gzip包上传上去,怎样?

可以每个gzip包放100条或者500条数据。在本地压缩之后,然后上传,再在目标站点解压,导入数据库。

好处就是
1、减少数据查询。如果不压缩,一次能上传100条数据,如果1000条数据,分10次。如果压缩的话,有可能分2次就行了。
2、文本数据压缩率很大。这样可以加速上传。

弊端暂时没想到,不知道大神们对这个方案有啥想法?有没有更好的办法?

11 个解决方案

#1


這個方案挺好的,不過如果兩個網站都是同一機房的,不壓縮比較好。

#2


我觉得 file_get_contents 就可以了,不必压缩上传

#3


引用 1 楼 fdipzone 的回复:
這個方案挺好的,不過如果兩個網站都是同一機房的,不壓縮比較好。


不是同一个机房,而且面临的环境复杂,可能包括低内存、低网速的情况。不是给自己用的。

#4


低內存,低網速
壓縮是占cpu的,如果cpu高可以壓縮。如果cpu都低。。傳輸慢點算了。

#5


我决得可以通过API,一端进行数据的JSON输出,另一端接收,再处理。
分批次的进行接收,每次可以传100或其它数。

#6


引用 2 楼 xuzuning 的回复:
我觉得 file_get_contents 就可以了,不必压缩上传


主要是考虑到两个因素

如果上传文章,比如我每次上传10篇文章,这10篇文章,有可能每篇100个字,有可能每篇1万个字。数据大小可大可小。

file_get_contents遇到这种情况,传输大点的数据,可能服务器就无法响应了。不好控制,如果处理,也可以,不过增加了程序的复杂性。
压缩起来的话,就不容易出现数据包过大的问题,因为200KB的文本,我压缩起来才十几KB,即使内存不大,网速不高的情况下,还是能够稳定的上传。


这就相当于我把1万个苹果从A城市运往B城市。我打包成每箱100个,100个箱子的数据运送,就好控制了。

#7


引用 5 楼 number123456 的回复:
我决得可以通过API,一端进行数据的JSON输出,另一端接收,再处理。
分批次的进行接收,每次可以传100或其它数。


如果每批100,传输的是文章呢?每篇文章有可能一万个字。也有可能100个字。这个无规律的。遇到这种情况,我感觉大数据网页会无法响应。

#8


不要想当然了

我说不要压缩上传,并没有排除压缩传输

其实你的这些事情本该是数据库同步机制完成的

#9


mysql数据同步? crotab处理不行?

#10


直接取出来json传输,现在的服务器都自带压缩功能,然后在目标服务器处理入库

#11


感觉楼主的逻辑有点奇怪,这个本地打包是使用php从数据库导出数据写入文件,然后在把文件打包,然后上传(这个是手动的么),上传到目标站后再在目标站点解压(这个是手动的么)利用php解压出文件再load data到数据的操作么  。不知道我说的过程是不是楼主的意思。如果是的话,难道不可以在本地建立一张临时表,将需要的数据放到临时表里,在通过数据库的复制机制,直接复制到目标网站的数据库表么。。

#1


這個方案挺好的,不過如果兩個網站都是同一機房的,不壓縮比較好。

#2


我觉得 file_get_contents 就可以了,不必压缩上传

#3


引用 1 楼 fdipzone 的回复:
這個方案挺好的,不過如果兩個網站都是同一機房的,不壓縮比較好。


不是同一个机房,而且面临的环境复杂,可能包括低内存、低网速的情况。不是给自己用的。

#4


低內存,低網速
壓縮是占cpu的,如果cpu高可以壓縮。如果cpu都低。。傳輸慢點算了。

#5


我决得可以通过API,一端进行数据的JSON输出,另一端接收,再处理。
分批次的进行接收,每次可以传100或其它数。

#6


引用 2 楼 xuzuning 的回复:
我觉得 file_get_contents 就可以了,不必压缩上传


主要是考虑到两个因素

如果上传文章,比如我每次上传10篇文章,这10篇文章,有可能每篇100个字,有可能每篇1万个字。数据大小可大可小。

file_get_contents遇到这种情况,传输大点的数据,可能服务器就无法响应了。不好控制,如果处理,也可以,不过增加了程序的复杂性。
压缩起来的话,就不容易出现数据包过大的问题,因为200KB的文本,我压缩起来才十几KB,即使内存不大,网速不高的情况下,还是能够稳定的上传。


这就相当于我把1万个苹果从A城市运往B城市。我打包成每箱100个,100个箱子的数据运送,就好控制了。

#7


引用 5 楼 number123456 的回复:
我决得可以通过API,一端进行数据的JSON输出,另一端接收,再处理。
分批次的进行接收,每次可以传100或其它数。


如果每批100,传输的是文章呢?每篇文章有可能一万个字。也有可能100个字。这个无规律的。遇到这种情况,我感觉大数据网页会无法响应。

#8


不要想当然了

我说不要压缩上传,并没有排除压缩传输

其实你的这些事情本该是数据库同步机制完成的

#9


mysql数据同步? crotab处理不行?

#10


直接取出来json传输,现在的服务器都自带压缩功能,然后在目标服务器处理入库

#11


感觉楼主的逻辑有点奇怪,这个本地打包是使用php从数据库导出数据写入文件,然后在把文件打包,然后上传(这个是手动的么),上传到目标站后再在目标站点解压(这个是手动的么)利用php解压出文件再load data到数据的操作么  。不知道我说的过程是不是楼主的意思。如果是的话,难道不可以在本地建立一张临时表,将需要的数据放到临时表里,在通过数据库的复制机制,直接复制到目标网站的数据库表么。。