删除后数据库表非常慢

时间:2016-11-19 10:13:31

标签: mysql database google-app-engine innodb

我在Google App-Engine上运行了一个MySQL InnoDB数据库。 其中一个表具有当前日期,user_id作为主键存储有一些附加数据。 该表有大约700万行,我用DELETE查询删除了600万行。因为使用此表的任何查询都比以前慢得多。

任何可能导致此行为的想法或如何解决此问题?

提前致谢!

1 个答案:

答案 0 :(得分:1)

在对innodb进行如此大规模的删除之后,最好使用OPTIMISE table语句

  

在这些情况下使用OPTIMIZE TABLE,具体取决于表的类型:

     
      
  • 在具有自己的.ibd文件的InnoDB表上进行实质性插入,更新或删除操作后,因为它是使用
    创建的   启用了innodb_file_per_table选项。表和索引是
      重新组织,并且可以回收磁盘空间以供操作使用   系统

  •   
  • 对InnoDB表中FULLTEXT索引一部分的列进行实质性插入,更新或删除操作。设置   首先配置选项innodb_optimize_fulltext_only = 1。保持中止   指数维持期限到合理时间,设定为
      innodb_ft_num_word_optimize选项指定要多少个单词   在搜索索引中更新,并运行一系列OPTIMIZE TABLE
      语句直到搜索索引完全更新。

  •   

在优化之前,使用ANALYSE TABLE检查表的状态,使用SHOW INDEX检查索引的状态。这些说明将为您提供有关OPTIMIZE可以解决的“缺陷”的信息。

所有这一切在phpmyadmin中都很容易。

相关问题