1
suckli 2014-04-30 18:53:28 +08:00
不知道直接使用 rsync 同步数据表文件是否可行~
|
2
qsun 2014-04-30 18:56:48 +08:00 1
|
3
Livid MOD 如果是文本数据的话,SELECT 出来之后,用 gzip 压缩一下。
比如可以在 A 上有个 web service,提供这几万行数据,然后用 NGINX 反代这个 web service 并设置 gzip on。 或者,每 15 分钟在 A 上写入到一个 txt 中,并 git push,然后从 B 上 git pull。如果是文本数据并且每次变化不大的话,就只需要传输压缩过的变化了的部分了。 |
7
ETiV 2014-04-30 19:50:08 +08:00 1
我现在外面跑的异地备份脚本是:
ssh database "/usr/bin/mysqldump -u${REMOTE_DB_USER} -p${REMOTE_DB_PASS} ${REMOTE_DB} ${REMOTE_TABLE} | /bin/bzip2 -zqc --best" | bunzip2 | /usr/bin/mysql -u${DB_USER} -p${DB_PASS} ${DB} 只有一行. 意思是, ssh 登录到 database, 而后执行 dump > bzip, 并输出到 stdout. 输出出来的内容会被执行脚本的服务接收进 stdin, 然后由 bunzip 直接解压缩出来, 再塞回 mysql 服务器. 由于是备份用的, 多数跑在凌晨三四点, 所以效率不需要很高. 如果你需要高效率, 根据mysql手册, 使用 LOAD DATA INFILE, 性能更快. 不过可能需要传输文件, 可以根据上面的脚本改一改. * 当从一个文本文件装载一个表时,使用LOAD DATA INFILE。这通常比使用很多INSERT语句快20倍。参见13.2.5节,“LOAD DATA INFILE语法”。 http://dev.mysql.com/doc/refman/5.1/zh/optimization.html 7.2.16. INSERT语句的速度 |