Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
大型mysql(innodb)数据库-查询性能慢、表消失、恢复备份时间长_Mysql_Database_Database Design_Innodb_Mysql Management - Fatal编程技术网

大型mysql(innodb)数据库-查询性能慢、表消失、恢复备份时间长

大型mysql(innodb)数据库-查询性能慢、表消失、恢复备份时间长,mysql,database,database-design,innodb,mysql-management,Mysql,Database,Database Design,Innodb,Mysql Management,我有一个数据库,其中3个表的行数都超过2000万。我使用guid作为主键(不幸的是)。现在我们的数据库约为20GB,每月增长5GB 对数据库进行完整备份大约需要2小时,在一个装有4GB RAM的机箱上进行恢复需要30小时 曾经,数据库中的所有表都消失了。同一台服务器上的其他mysql数据库都正常,只有一个数据库的数据消失了,留下了空表 一个select查询(在许多慢查询中)——在2000万个表中的一个表中获取最大日期列,返回结果大约需要5分钟。这个查询使用得相当频繁 我在寻找答案 建议的数据库设

我有一个数据库,其中3个表的行数都超过2000万。我使用guid作为主键(不幸的是)。现在我们的数据库约为20GB,每月增长5GB

对数据库进行完整备份大约需要2小时,在一个装有4GB RAM的机箱上进行恢复需要30小时

曾经,数据库中的所有表都消失了。同一台服务器上的其他mysql数据库都正常,只有一个数据库的数据消失了,留下了空表

一个select查询(在许多慢查询中)——在2000万个表中的一个表中获取最大日期列,返回结果大约需要5分钟。这个查询使用得相当频繁

我在寻找答案

  • 建议的数据库设计更改
  • 改进select查询性能的方法-在2000万条记录上显示最大日期列
  • 其他查询的性能
  • 如何着手处理未来的数据库增长

  • 谢谢大家的关注。

    我看到过较大的设置(使用
    InnoDB
    作为存储引擎,使用
    GUID
    作为主键),但没有出现此类问题

    曾经,数据库中的所有表都消失了。同一台服务器上的其他mysql数据库都正常,只有一个数据库的数据消失了,留下了空表

    如果系统
    LSN
    已位于每页的
    LSN
    下方,则表可能看起来是空的。如果
    InnoDB
    日志文件损坏,可能会发生这种情况<但是,在这种情况下,code>InnoDB将发出警告

    一个select查询(在许多慢查询中)——在2000万个表中的一个表中获取最大日期列,返回结果大约需要5分钟。这个查询使用得相当频繁

    如果在此列上创建索引,则查询将是即时的

    请发布准确的查询,我将告诉您如何创建最佳索引

    我认为
    DB
    设计本身没有问题,很可能是服务器的问题

    是否可以在另一台安装了干净的香草
    MySQL
    的服务器上重现这种行为


    您可能还希望尝试在表之间拆分数据。根据表设置innodb文件并从备份中恢复。

    对于备份,您可以使用该工具。这不仅可以让您在数据库运行时执行一致性备份,而且恢复速度比您正在执行的要快得多(我假设是mysqldump?)。它确实需要花钱。

    免费替代innodb热备份。

    您也可以尝试Mydumper:


    这是一个很棒的工具,是免费的开源

    用于优化select查询,拥有相关的数据库结构和查询可能会有所帮助。