BCS*_*BCS 11 mysql performance
我正在尝试通过加载其中一个备份来构建生产MySQL数据库的开发副本.如果未压缩转储大约20G,需要多长时间才能完成?
这个命令已经运行了24h,CPU负载为10%,我想知道它是否只是很慢或者它/我做错了什么.
mysql -u root -p < it_mysql_dump.sql
Run Code Online (Sandbox Code Playgroud)
顺便说一句,它是一台功能强大的桌面开发机器,有很多内存,但它可能是读取和写入相同的硬盘驱动器.我想我正在使用InnoDB.
恢复MySQL转储可能需要很长时间.这是因为它确实重建了整个表.
你需要做什么来解决它取决于引擎,但总的来说
我会说,做以下事情:
第0条规则:仅使用64位操作系统.
现在,如果您仍然发现执行上述操作的速度很慢,则可能是您的特定数据库具有非常棘手的恢复结构.
就个人而言,我已经设法在<48小时内重建了一个服务器~2Tb,但这是一个特例.
如果您打算将生产数据加载到其中,请确保您的开发系统具有生产级硬件.
特别是,如果您认为可以将数据批量加载到不适合内存的表中(或者至少大部分加载到内存中),请忘记它.
如果这一切看起来太多,请记住您可以在InnoDB上使用文件系统或LVM快照,然后只复制文件.使用MyISAM它有点棘手,但仍然可以完成.
打开另一个终端,运行 mysql,并计算转储 ( SELECT COUNT(*) FROM table)中某些表中的行数。与源数据库进行比较。那会告诉你进展。
我在大约 14 小时内通过网络将大约 80GB 的数据插入 MySQL。它们是每行一个插入的转储(慢),开销很大,插入具有快速磁盘的服务器上。
如果硬件足够旧,或者您的导入正在与其他东西竞争磁盘 IO 和内存,则 24 小时是可能的。