zoukankan      html  css  js  c++  java
  • 回收数据库表的空间

    1、创建一个存储过程

    2、先获取该数据库中所有表名

    3、使用optimize table回收空间

    4、执行该存储过程(CALL recycle_interspace)


    DELIMITER $$
    CREATE PROCEDURE `recycle_interspace`()
    BEGIN
    DECLARE row_table_name VARCHAR(90);
    DECLARE ergodic INT DEFAULT 1;
    DECLARE getcategory CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema='数据库名';
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET ergodic:=0;
    OPEN getcategory;

    /**
    开始回收表的空间。
    使用optimize table来回收空间,但这个操作会锁表影响业务,如果确认回收,建议在业务低峰期进行操作。
    */
    REPEAT
    FETCH getcategory INTO row_table_name;
    SET @csql=CONCAT(' OPTIMIZE TABLE ',row_table_name,';');
    PREPARE create_stmt FROM @csql;
    EXECUTE create_stmt;
    UNTIL ergodic=0 END REPEAT;
    CLOSE getcategory;
    END$$

    DELIMITER ;

  • 相关阅读:
    js刷新
    getHibernateTemplate()为NUll
    struts2+hibernate+spring+jquery返回json List列表
    windowopen
    web配置详解
    缓存
    uuid-不好之处
    多对多转化一对多
    多对多拆成两个 多对一
    我的github地址账号和密码
  • 原文地址:https://www.cnblogs.com/chenrenshui/p/8541858.html
Copyright © 2011-2022 走看看