mysqlでテーブルのサイズを取得する方法

SHOW TABLE STATUS でもとれるんですが、1テーブルずつしかとれません。
information_schema にあったような気がしたので調べてみたらやっぱりありました。

SELECT table_schema, table_name, data_length, index_length 
FROM information_schema.tables


table_schema が スキーマ名で、table_name がテーブル名。
SQL なので、WHERE 句を自由に指定できるし、集計するのも簡単。


ただ、 information_schema 自体は SQL 標準なのだけど、data_length や index_length は MYSQL 独自拡張。
案の定、PostgreSQL にはなかった。