large mysql (innodb) database - slow query performance, disappearing tables and long time to restore backups
我有一个数据库,其中有 3 个表,每个表的行数超过 2000 万。我使用 GUID 作为主键(不幸的是)。现在我们的数据库大约有 20GB,并且每月增长 5GB。
完全备份数据库大约需要 2 小时,在 4GB RAM 的机器上恢复需要 30 小时。
我们曾经让数据库中的所有表都消失了。同一台服务器中的其他 mysql 数据库都很好,除了一个 - 只有一个数据消失了,留下了空表。
选择查询(在许多慢查询中)- 在 20m 表之一中获取日期列的最大值大约需要 5 分钟才能返回结果。这个查询经常使用。
我正在寻找答案
感谢大家的关注。
Innodb 热备份的免费替代品是 Percona XtraBackup Tool。
我见过更大尺寸的设置(
We once have all the tables from database disappeared. other mysql databases in same server were alright except one - for which only data was disappeared leaving empty tables.
如果系统
A select query (among many slow queries) - which get max of a date column in one of 20m table takes about 5 mins to return result. This query used pretty frequently.
在该列上创建索引,查询将是即时的。
请发布确切的查询,我会告诉你如何创建最佳索引。
我认为
是否可以在另一台安装了干净的 vanilla
您可能还想尝试在表之间拆分数据。设置
你也可以试试 Mydumper:http://www.mydumper.org/
这是一个很棒的工具,而且是免费和开源的
对于备份,您可以使用 innodb 热备份工具。这不仅可以让您在数据库启动时进行一致的备份,而且恢复速度比您正在执行的备份要快得多(我假设是 mysqldump?)。确实要花钱。