ホーム » DB関連 » Mysql 全テーブルのアナライズ

Mysql 全テーブルのアナライズ

   作者:ビズコネクトポータル   发布时间:2013-08-15   

ストアドの定義

DROP PROCEDURE IF EXISTS `analyzeAllTable`;

CREATE PROCEDURE `analyzeAllTable`(IN _tableschema varchar(64))

BEGIN
    /* 変数宣言 */
    DECLARE done INT;
    DECLARE _tablename varchar(64);

    /* カーソル定義 テーブル名取得 */
    DECLARE cur CURSOR FOR
        SELECT
            table_name
        FROM
            `information_schema`.`TABLES` t
        WHERE
            t.TABLE_SCHEMA = _tableschema
        AND t.table_type = 'BASE TABLE';


    /* イベント制御規定 */
    DECLARE EXIT HANDLER FOR NOT FOUND SET done = 0;

    SET done = 1;
    OPEN cur;
    WHILE done DO
        /* アナライズテーブル */
        FETCH cur INTO _tablename;
        set @asql = concat('analyze table `', _tablename , '`');
        PREPARE stmt from @asql;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;
    END WHILE;
    CLOSE cur;
END;

バッチで実行

call analyzeAllTable('schemaname');

此评论不代表本站观点大家说

《Mysql 全テーブルのアナライズ》等您坐沙发呢!

发表评论

亲,不支持纯字母、符号评论哦~