gpt4 book ai didi

performance - 具有单个表的 mysqldump 比使用 --all-databases 慢得多

转载 作者:行者123 更新时间:2023-11-29 08:50:40 26 4
gpt4 key购买 nike

我使用两种不同的方法来备份我的 mysql 数据库。与将每个数据库转储到单个文件中的循环相比,使用 --all-databases 的 mysqldump 速度要快得多,并且性能要好得多。为什么?以及如何提高循环版本的性能

enter image description here

/usr/bin/mysqldump --single-transaction --all-databases  | gzip > /backup/all_databases.sql.gz

这个循环超过了 65 个数据库,即使使用nice:

nice -n 19 mysqldump --defaults-extra-file="/etc/mysql/conf.d/mysqldump.cnf" --databases -c xxx -q > /backup/mysql/xxx_08.sql
nice -n 19 mysqldump --defaults-extra-file="/etc/mysql/conf.d/mysqldump.cnf" --databases -c dj-xxx -q > /backup/mysql/dj-xxx_08.sql
nice -n 19 mysqldump --defaults-extra-file="/etc/mysql/conf.d/mysqldump.cnf" --databases -c dj-xxx-p -q > /backup/mysql/dj-xxx-p_08.sql
nice -n 19 mysqldump --defaults-extra-file="/etc/mysql/conf.d/mysqldump.cnf" --databases -c dj-foo -q > /backup/mysql/dj-foo_08.sql

mysqldump.cnf仅用于身份验证,没有其他选项。

最佳答案

有很多差异。

  1. 在 A 中,您正在写入 gzip,它会在写入磁盘之前压缩数据。 B 写入普通的 sql 文件,该文件可能大 5-10 倍(来 self 的数据库的结果)。如果您的性能受到磁盘限制,这可能是解决方案

  2. -c = A 中未指定“完全插入”

  3. A中未指定-q

  4. 对于大型数据库INFORMATION_SCHEMA查询对于mysql来说可能是一件痛苦的事情(尝试执行SELECT * FROM information_schema.columns。对于B,每个转储都必须执行这些查询而A只需执行一次。

关于performance - 具有单个表的 mysqldump 比使用 --all-databases 慢得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11325067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com