2011-12-02 10 views
35

ウェブサイト"How to calculate the MySQL database size"は、2つのクエリを与える:データベース内のテーブルのサイズを調べるクエリ? (mysqlの)

は、最初のクエリが正常に動作するデータベース

SELECT TABLE_NAME, table_rows, data_length, index_length, 
round(((data_length + index_length)/1024/1024),2) "Size in MB" 
FROM information_schema.TABLES WHERE table_schema = "schema_name"; 

内のすべてのテーブルのサイズを決定し、すべてのデータベース

SELECT table_schema "Data Base Name", SUM(data_length + index_length)/1024/1024 
"Data Base Size in MB" FROM information_schema.TABLES GROUP BY table_schema ; 

のサイズを決定しますが、 2番目のクエリは結果セットを生成しません。それは単に行のないフィールドの名前を表示するだけです。私のデータベース内のテーブルのサイズのサイズを正しく表示するために2番目のクエリを変更するにはどうすればよいですか。

答えて

25

あなたデータベースの1つの名前で"schema_name"を交換してください。

use single-quotes for string literals二重引用符ではありません。

+0

答えは+ 1、二重引用符と一重引用符の答えは+1 – user784637

17

これは役に立つスレッドでした。

MySQLの

SELECT 
    TABLE_NAME, table_rows, data_length, index_length, 
    round(((data_length + index_length)/1024/1024),2) 'Size in MB' 
FROM information_schema.TABLES 
WHERE table_schema = 'yourSchemaName' and TABLE_TYPE='BASE TABLE' 
ORDER BY data_length DESC; 

OPの第二のレシピは、テーブルだけを返す(無ビュー)と、テーブルのサイズによって返されたデータセットを順序付け---最大のツー最小のこのわずかな変化PostGRES:今日はPostGRESでも同じことをして、this answer(そしてブラウザのタブを閉じた後に失った別のもの)からいくつかの助けを借りなければなりませんでした。これが私の結末です。それを他の誰にとっても役に立ちます。

SELECT 
    t.tbl table_name, 
    ct.reltuples row_count, 
    pg_total_relation_size(t.tbl) size, 
    pg_size_pretty(pg_total_relation_size(t.tbl)) pretty_size 
FROM (
    SELECT 
    table_name tbl 
    FROM information_schema.tables 
    WHERE 
     table_schema = 'public' 
     AND table_type = 'BASE TABLE' 
) t 
join (
    SELECT 
    relname, reltuples 
    FROM pg_class C 
    LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) 
    WHERE 
    nspname NOT IN ('pg_catalog', 'information_schema') 
     AND relkind='r' 
) ct 
on t.tbl = ct.relname 
order by size desc ; 
3

ここでは、データベース内の各テーブルのサイズを指定するために使用するクエリを示します。

SELECT CASE WHEN (GROUPING(sob.name)=1) THEN 'All_Tables' 
    ELSE ISNULL(sob.name, 'unknown') END AS Table_name, 
    SUM(sys.length) AS Byte_Length 
FROM sysobjects sob, syscolumns sys 
WHERE sob.xtype='u' AND sys.id=sob.id 
GROUP BY sob.name 
WITH CUBE 
関連する問題