mysql डेटाबेस में तालिकाओं का आकार निर्धारित करने की क्वेरी?(माई एसक्यूएल)




database (4)

मुझे लगता है कि यह बेहतर है .. http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html

show table status from database;

वेबसाइट "MySQL डेटाबेस आकार की गणना कैसे करें " दो प्रश्न देता है:

सभी डेटाबेस का आकार निर्धारित करें

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 ;

एक डेटाबेस में सभी तालिकाओं का आकार निर्धारित करें

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";

पहली क्वेरी सही तरीके से काम करती है, लेकिन दूसरी क्वेरी परिणाम सेट नहीं करती है। यह बिना किसी पंक्तियों के केवल खेतों के नाम दिखाता है। मैं अपने डेटाबेस में अपनी तालिकाओं के आकार को सही ढंग से दिखाने के लिए 2 क्वेरी को कैसे संशोधित कर सकता हूं।


यहां एक क्वेरी है जो मैं डेटाबेस में प्रत्येक तालिका का आकार देने के लिए उपयोग करता हूं।

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

यह एक सहायक धागा था। ओपी की दूसरी रेसिपी पर यह थोड़ी भिन्नता केवल सारणी (कोई दृश्य नहीं) देती है और लौटे हुए डेटारों को टेबल साइज द्वारा क्रमबद्ध करती है --- सबसे बड़ा-छोटा:

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;

पोस्टग्रेज : मुझे आज पोस्टग्रेज में भी यही काम करने की जरूरत है, और इस जवाब से कुछ मदद लेनी है (और एक और जिसे मैंने ब्राउज़र टैब बंद करने के बाद खो दिया है), यह वही है जिसके साथ मैं समाप्त हुआ। अगर किसी और के लिए यह उपयोगी है तो इसे यहाँ जोड़ना।

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 ;





database