当以--log-update=file_name选项启动时,mysqld将所有更新数据的SQL命令写入记录文件中。文件被写入数据目录并且有一个名字file_name.#,这里#是一个数字,它在每次执行mysqladmin refresh或mysqladmin flush-logs、FLUSH LOGS语句、或重启服务器时加1。 如果你使用--log或-l选项,mysqld用一个文件名“hostname.log”写一个通用的记录文件,并且重启和更新不会引起一个新的记录文件生成(尽管它被关闭并且再打开)。缺省地,mysql.server脚本用-l选项启动MySQL服务器,如果当你在生产环境中开始使用MySQL时,你需要好一些的性能,你可以从mysql.server中删除-l选项。 更新记录很聪明,因为它仅仅记载真正更新数据的语句。因此一个用WHERE的UPDATE或DELETE找不到行,它就不被写入记录文件。它甚至跳过将设置一个列为它已经有的值的UPDATE语句。 如果你想要从更新记录文件更新一个数据库,你可以如下做到(假设你的更新记录有“file_name.#”形式的名字): shell> ls -1 -t -r file_name.[0-9]* | xargs cat | mysqlls被用来以正确的次序得到所有的记录文件。 如果你必须在一个崩溃后恢复到备份文件并且你想要再做发生在备份和崩溃之间的更新,这可以很有用。 当你在其他主机上有一个镜像数据库并且你想要复制必须对主数据库进行的改变时,你也可以使用更新记录。