清理MySQL表空间碎片

1. 查询碎片超过10M的表

(1)整个数据库

   SELECT

    table_name,

    round(data_length / 1024 / 1024) AS data_length_mb,

    round(data_free / 1024 / 1024) AS data_free_mb

    FROM

    information_schema. TABLES

    WHERE

    TABLE_SCHEMA = 'xxx'

    AND round(data_free / 1024 / 1024) > 10

    ORDER BY

    data_free_mb DESC

    LIMIT 10;

   (2) 单表查询

        show table status from table_schema like '%[table_name]%';

2. MyISam 引擎

    optimize table [table_name]

3. Innodb 引擎

    alter table [table_name] engine= innodb

    alter table [table_name] force;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容