MySQL information_schema の活用 テーブルステータス

information_schema にある TABLES から現在の状態を取得できます。

下のようなビューを使って、わかりやすくしてます。


CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `root`@`localhost` 
    SQL SECURITY DEFINER
VIEW `vw_simple_table_schema` AS
    SELECT 
        `information_schema`.`tables`.`TABLE_NAME` AS `Name`,
        `information_schema`.`tables`.`TABLE_COMMENT` AS `Comment`,
        `information_schema`.`tables`.`TABLE_ROWS` AS `Rows`,
        (FLOOR((`information_schema`.`tables`.`DATA_LENGTH` / 1024)) + FLOOR((`information_schema`.`tables`.`INDEX_LENGTH` / 1024))) AS `total_length_k`,
        FLOOR((`information_schema`.`tables`.`DATA_LENGTH` / 1024)) AS `Data_length_k`,
        FLOOR((`information_schema`.`tables`.`INDEX_LENGTH` / 1024)) AS `index_length_k`,
        `information_schema`.`tables`.`CREATE_TIME` AS `Create_time`
    FROM
        `information_schema`.`tables`
    WHERE
        (`information_schema`.`tables`.`TABLE_SCHEMA` = 'ocean2')
    ORDER BY `information_schema`.`tables`.`TABLE_ROWS` DESC

各アプリケーションの管理人用ページに、下のような表を配置してます。

コメントを残す