PHP 与 mysql cronjob 的批处理文件?

PHP 与 mysql cronjob 的批处理文件?

我的服务器详细信息:

OS: Windows Server 2003
IIS6
Plesk 8.xx installed (currently using Plesk to set the cronjob)

我需要你的建议。我有两种方法:

方法 1:

使用 php + mysqldump,将数据库备份文件创建为 gzip,然后发送带有附件的电子邮件(每个数据库大约有 25mb)

方法 2:

使用批处理 + mysqldump,将数据库备份文件创建为 gzip,然后发送带有附件的电子邮件(相同,每个数据库大约有 25mb)

我的问题:

  1. 使用 php 文件和批处理文件执行 cronjob 有什么区别?

  2. 就备份速度和发送电子邮件而言,哪种方法更好,以及(可能)安全性(例如,较少的文件损坏发生)?

  3. 如果我每小时设置一次 cronjob,这会影响我的网站性能吗?我的意思是,假设我的网站现在有 100 多个在线用户,每个用户都与 MySQL 进行交易,当我在网站高峰时段执行备份时,这会降低性能吗,例如加载速度、容易出错等?

(对不起,我的英语不好)

PS:如果您需要我的 php 和批处理文件代码,请让我在此处发布。我现在没有发布它是因为它的代码非常简单和标准。

答案1

  1. 如果您只是进行转储、gzip 压缩然后发送电子邮件,则没有什么区别。但是如果您正在做更复杂的事情,使用 PHP 将有优势,例如,您可能想要设置时间戳,或者在发送之前解析输出。然后,您可以利用 PHP 的大量库和方法来完成批处理无法提供(至少不容易)的这类事情

  2. 这个你必须自己测试一下。

  3. 您可能想要设置增量备份或仅保存交易。(而不是整个数据库)

答案2

  1. 为了进行一些数据库备份,您可以选择任何您想要的语言 PHP、bash、python,无论如何它不会有太大变化。

  2. 没有哪种方法更好,它只取决于您的脚本和您使用的工具。

  3. 是的,mysqldump 对性能有一定影响,如果您想经常保存数据库,您可能需要使用复制设置从属服务器并在那里进行备份。

答案3

使用您最熟练的语言进行编码。对于像这样的简单任务,不同语言的速度差异并不明显。

由于您的数据库非常小,因此可能不会对性能造成太大影响。但是 mysqldump 往往会在转储表时锁定表,以防止任何其他内容写入这些表。

答案4

使用 php/batch + mysqldump,将数据库备份文件创建为 gzip,然后发送带有附件的电子邮件(每个数据库大约有 25mb)

无论您使用的是 PHP 还是批处理文件,它实际上只被使用了数毫秒。所有繁重的处理都发生在 MySQL 和 Gzip 中,而这一切都发生在您的脚本之外。

本质上,这就像关心您乘坐前往航天飞机的汽车的颜色一样。

相关内容