【问题标题】:Database Table very slow after delete删除后数据库表非常慢
【发布时间】:2017-04-03 03:55:41
【问题描述】:

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

任何想法可能导致这种行为或如何解决这个问题?

提前致谢!

【问题讨论】:

标签: mysql database google-app-engine innodb


【解决方案1】:

在对innodb进行如此大规模删除之后,您最好使用OPTIMISE table声明

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

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

  • 在对属于 InnoDB 表中的 FULLTEXT 索引的列执行大量插入、更新或删除操作之后。设置 首先配置选项 innodb_optimize_fulltext_only=1。保持
    将索引维护周期设置为合理的时间,设置
    innodb_ft_num_word_optimize 选项指定要多少个单词
    在搜索索引中更新,并运行一系列 OPTIMIZE TABLE
    语句,直到搜索索引完全更新。

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

这一切在 phpmyadmin 中都很容易做到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多