আমার অ্যামাজন আরডিএস ডাটাবেস (মাইএসকিউএল) কত বড় তা আমি কীভাবে বলতে পারি?


12

আরডিএস ব্যবহার করে আমাজন এডাব্লুএসে হোস্ট করা আমার ওয়েবসাইটের জন্য আমার কাছে একটি মাইএসকিউএল ডাটাবেস রয়েছে। এটিতে এটিতে 5 গিগাবাইট স্টোরেজ উপলব্ধ রয়েছে। এটিতে থাকা ডেটা আসলে কীভাবে বড় হয় তা আমি কীভাবে বলতে পারি (এবং সেইজন্য আমি 5 জিবি কোটা কত রেখেছি)?

উত্তর:


13

INFORMATION_SCHEMA এর বিরুদ্ধে এখানে আরও সংগঠিত প্রশ্ন রয়েছে

স্টোরেজ ইঞ্জিন দ্বারা আকার

SELECT
    IFNULL(B.engine, 'Total') "Storage Engine",
    CONCAT(LPAD(REPLACE(FORMAT(B.DSize / POWER(1024, pw), 3), ',', ''), 17, ' '), ' ', SUBSTR(' KMGTP', pw + 1, 1), 'B') "Data Size",
    CONCAT(LPAD(REPLACE( FORMAT(B.ISize / POWER(1024, pw), 3), ',', ''), 17, ' '), ' ', SUBSTR(' KMGTP', pw + 1, 1), 'B') "Index Size",
    CONCAT(LPAD(REPLACE( FORMAT(B.TSize / POWER(1024, pw), 3), ',', ''), 17, ' '), ' ', SUBSTR(' KMGTP', pw + 1, 1), 'B') "Table Size" 
FROM
    (SELECT
            engine,
            SUM(data_length) DSize,
            SUM(index_length) ISize,
            SUM(data_length + index_length) TSize 
        FROM
            information_schema.tables 
        WHERE
            table_schema NOT IN ('mysql', 'information_schema', 'performance_schema')
            AND engine IS NOT NULL 
        GROUP BY engine WITH ROLLUP
    ) B,
    (SELECT 3 pw) A 
ORDER BY TSize;

ডাটাবেস দ্বারা আকার

SELECT
    dbname,
    Concat(Lpad(Format(sdsize / Power(1024, pw), 3), 17, ' '), ' ', Substr(' KMGTP', pw + 1, 1), 'B') "Data Size",
    Concat(Lpad(Format(sxsize / Power(1024, pw), 3), 17, ' '), ' ', Substr(' KMGTP', pw + 1, 1), 'B') "Index Size",
    Concat(Lpad(Format(stsize / Power(1024, pw), 3), 17, ' '), ' ', Substr(' KMGTP', pw + 1, 1), 'B') "Total Size" 
FROM
    (SELECT
            Ifnull(db, 'All Databases') DBName,
            Sum(dsize) SDSize,
            Sum(xsize) SXSize,
            Sum(tsize) STSize 
        FROM (SELECT
                    table_schema DB,
                    data_length DSize,
                    index_length XSize,
                    data_length + index_length TSize 
                FROM information_schema.tables 
                WHERE table_schema NOT IN ('mysql','information_schema','performance_schema')
            ) AAA 
        GROUP BY db WITH rollup
    ) AA,
    (SELECT 3 pw) BB 
ORDER BY ( sdsize + sxsize ); 

ডাটাবেস / স্টোরেজ ইঞ্জিন অনুসারে মাপ

SELECT
    Statistic,
    DataSize "Data Size",
    IndexSize "Index Size",
    TableSize "Table Size" 
FROM
    (SELECT
            IF(ISNULL(table_schema) = 1, 10, 0) schema_score,
            IF(ISNULL(engine) = 1, 10, 0) engine_score,
            IF(ISNULL(table_schema) = 1, 'ZZZZZZZZZZZZZZZZ', table_schema) schemaname,
            IF(ISNULL(B.table_schema) + ISNULL(B.engine) = 2, "Storage for All Databases", IF(ISNULL(B.table_schema) + ISNULL(B.engine) = 1, CONCAT("Storage for ", B.table_schema), CONCAT(B.engine, " Tables for ", B.table_schema))) Statistic,
            CONCAT(LPAD(REPLACE(FORMAT(B.DSize / POWER(1024, pw), 3), ',', ''), 17, ' '), ' ', SUBSTR(' KMGTP', pw + 1, 1), 'B') DataSize,
            CONCAT(LPAD(REPLACE( FORMAT(B.ISize / POWER(1024, pw), 3), ',', ''), 17, ' '), ' ', SUBSTR(' KMGTP', pw + 1, 1), 'B') IndexSize,
            CONCAT(LPAD(REPLACE(FORMAT(B.TSize / POWER(1024, pw), 3), ',', ''), 17, ' '), ' ', SUBSTR(' KMGTP', pw + 1, 1), 'B') TableSize 
        FROM
            (SELECT
                    table_schema,
                    engine,
                    SUM(data_length) DSize,
                    SUM(index_length) ISize,
                    SUM(data_length + index_length) TSize 
                FROM
                    information_schema.tables 
                WHERE
                    table_schema NOT IN ('mysql', 'information_schema', 'performance_schema')
                    AND engine IS NOT NULL 
                GROUP BY
                    table_schema, engine WITH ROLLUP
            ) B,
            (SELECT 3 pw) A
    ) AA 
ORDER BY schemaname, schema_score, engine_score;

বিচারকার্য স্থগিত রাখার আদেশ

তিনটি (3) প্রশ্নের প্রত্যেকটিতে আপনি দেখতে পাবেন (SELECT 3 pw)pw1024 শক্তি জন্য ব্রিদিং নির্দিষ্ট ইউনিটে ফলাফল প্রদর্শন করতে:

  • (SELECT 0 pw) প্রতিবেদনটি বাইটে প্রদর্শন করবে
  • (SELECT 1 pw) প্রতিবেদনটি কিলোবাইটে প্রদর্শন করবে
  • (SELECT 2 pw) প্রতিবেদনটি মেগাবাইটে প্রদর্শিত হবে
  • (SELECT 3 pw) গিগা বাইটস এ প্রতিবেদনটি প্রদর্শিত হবে
  • (SELECT 4 pw) টেরাবাইটে প্রতিবেদনটি প্রদর্শিত হবে
  • (SELECT 5 pw) পেটাবাইটিসে প্রতিবেদনটি প্রদর্শন করবে (আপনি যদি এটি চালনা করেন তবে আমার সাথে যোগাযোগ করুন)

এখানে কিছুটা কম ফর্ম্যাটিং সহ একটি প্রতিবেদনের ক্যোয়ারী রয়েছে KB:

SELECT
    IFNULL(db, 'Total') "Database",
    datsum / power(1024, pw) "Data Size",
    ndxsum / power(1024, pw) "Index Size",
    totsum / power(1024, pw) "Total" 
FROM
    (
        SELECT
            db,
            SUM(dat) datsum,
            SUM(ndx) ndxsum,
            SUM(dat + ndx) totsum 
        FROM
            (
                SELECT table_schema db, data_length dat, index_length ndx 
                FROM information_schema.tables 
                WHERE engine IS NOT NULL AND table_schema NOT IN ('information_schema', 'mysql')
            ) AA 
        GROUP BY db WITH ROLLUP
    ) A,
    (SELECT 1 pw) B;

একবার চেষ্টা করে দেখো !!!


তুমি অসাধারণ!
প্লেয়ার 1

7

অবশেষে আমি কয়েকটি ক্লিক সহ অ্যামাজন থেকে এই তথ্যটি পাওয়ার সহজ উপায়টি পেয়েছি।

  1. আরডিএস পরিচালনার ড্যাশবোর্ডে লগইন করুন
  2. "ডিবি ইনস্ট্যান্স" এ ক্লিক করুন
  3. আপনি আগ্রহী উদাহরণে ক্লিক করুন। এটি এটিকে প্রসারিত করা উচিত এবং এ সম্পর্কে আরও অনেক তথ্য প্রদর্শন করা উচিত।
  4. বামদিকে "মনিটরিং" ট্যাবটি দেখুন (এটি ডিফল্টরূপে নির্বাচন করা উচিত)
  5. সেখানে একটি "স্টোরেজ" মনিটর রয়েছে যা এটি জানায় যে এটি কতটা জায়গা ব্যবহার করে এবং কতটা উপলব্ধ তার একটি গ্রাফ দেখায়:

এখানে চিত্র বর্ণনা লিখুন


আরডিএস ডক্স থেকে, মুক্তযোগ্য মেমরিটি হ'ল "ডিবি উদাহরণে কত র‌্যাম পাওয়া যায়, মেগাবাইটে", স্টোরেজ ব্যবহারের উদাহরণ নয়: ডকস.আও.স.আমাজোন
ইভান ক্রসকে

@ ইভানক্রসকে দেখে মনে হচ্ছে "ফ্রি স্টোরেজ স্পেস" আসলে আমার যে মেট্রিকটি তা চাই। ডক লিঙ্কের জন্য ধন্যবাদ।
স্টিফেন অস্টেরমিলার

দেখে মনে হচ্ছে এডাব্লুএস পুরো উত্তর ইন্টারফেসটি নতুন করে দিয়েছে কারণ আমি এই উত্তরটি লিখেছি। আমি আজ যা দেখছি তার ভিত্তিতে আমি এটি আপডেট করেছি।
স্টিফেন অস্টেরমিলার

দেখে মনে হচ্ছে তারা আবার এটি পুনর্নির্মাণ করতে পারে, আমি একটি পর্যবেক্ষণ ট্যাব দেখতে পাচ্ছি না। এবং সঞ্চয়স্থান কেবল বরাদ্দকৃত মোট আকারের তালিকা করে।
ব্রায়ান থমাস

2

show table status from mydatabsename; যেখানে মাইডাটাবেসনেম হল আপনার ডাটাবেসের নাম।

এটি আপনাকে প্রতি টেবিল ও অন্যান্য মেট্রিকের ডেটা-দৈর্ঘ্য এবং সূচি_ দৈর্ঘ্য দেখায়। আপনাকে এই কলামগুলি মোট সংগ্রহ করতে হবে এবং মনে রাখতে হবে সেগুলি বাইটে রয়েছে তাই আপনাকে কেবি পেতে 1024 এবং তারপরে আবার 1024 করে মেগ পেতে এবং তারপরে জিগ পেতে আবার 1024 দিয়ে বিভক্ত করতে হবে। এটি আপনার সূচক / ডাটাবেস বরাদ্দের মধ্যে মুক্ত স্থানও দেখায়।

আপনি যদি অন্বেষণ করতে চান তবে আপনি আরও দানাদার এবং যোগফল পেতে পারেন: http://dev.mysql.com/doc/refman/5.5/en/show-table-status.html

SELECT SUM(DATA_FREE) FROM INFORMATION_SCHEMA.PARTITIONS;

সূচক / ডাটাবেস বরাদ্দে অবশিষ্ট স্থান দেখায় ...

SELECT SUM(Data_length) FROM INFORMATION_SCHEMA.PARTITIONS;

SELECT SUM(Index_length) FROM INFORMATION_SCHEMA.PARTITIONS;

... ব্যবহৃত ডেটা এবং সূচী আকার দেখায় (আপনাকে মোট বরাদ্দের জন্য এগুলি যোগ করতে হবে)

আপনি যদি জিনিসগুলিকে কিছুটা বিচ্ছিন্ন করতে চান ...

select sum(Data_length) from INFORMATION_SCHEMA.PARTITIONS where TABLE_SCHEMA = "myschema";

select sum(Index_length) from INFORMATION_SCHEMA.PARTITIONS where TABLE_SCHEMA = "myschema";

select sum(DATA_FREE) from INFORMATION_SCHEMA.PARTITIONS where TABLE_SCHEMA = "myschema";

select sum(Data_length) from INFORMATION_SCHEMA.PARTITIONS where TABLE_SCHEMA = "myschema" and TABLE_NAME = "aspecifictable";

select sum(Index_length) from INFORMATION_SCHEMA.PARTITIONS where TABLE_SCHEMA = "myschema" and TABLE_NAME = "aspecifictable";

অবশ্যই আপনি এখানে মাইএসএসকিউএল ওয়ার্কব্যাঞ্চ ব্যবহার করতে পারেন যেমন: আমি এখানে পেয়েছি: http://dev.mysql.com/downloads/tools/workbench/ তবে তা ধরে নিয়েছে যে আপনার ডাটাবেস সার্ভারে আপনার পোর্ট অ্যাক্সেস রয়েছে। তবুও, আপনি ডাউনলোডের পক্ষে এতটা অফলাইনেও অনেক কিছু করতে পারেন। দয়া করে নোট করুন যে ওয়ার্কবেঞ্চ আমার (অর্থ) বোধ করে না এমন বরাদ্দ () বরাদ্দের সমষ্টি করে না। তবে আবার, আমার কাছে সর্বশেষতম সংস্করণ নেই।


এই আরডিএস দৃষ্টান্তে আমার 100 টিরও বেশি ডাটাবেস রয়েছে। তাদের সমস্তকে জিজ্ঞাসা করার এবং সমস্ত কিছুর যোগফল দেওয়ার কোনও সুবিধাজনক উপায় আছে কি?
স্টিফেন অস্টারমিলার

@ স্টেফেন অস্টেরমিলার 100 টি ডাটাবেস বা 100 টেবিল? একটি ডাটাবেসে এক বা একাধিক স্কিমা (গুলি) থাকে। একটি স্কিমা সাধারণত সম্পর্কিত টেবিল সহ একটি বিষয় অঞ্চল।
ক্লোজটোক

প্রায় 20 টি টেবিল সহ 100 টি ডাটাবেস।
স্টিফেন অস্টেরমিলার

আমি উল্লিখিত পৃষ্ঠাটিতে উদাহরণটি নিয়ে পরীক্ষা করছি ... মাত্র এক সেকেন্ডে আপনার কাছে ফিরে আসব।
ক্লোজটোক

@ স্টেফেন অস্টেরমিলার উত্তরটি আপডেট করেছেন। আশাকরি এটা সাহায্য করবে.
ক্লোজটোক

1

2019 : মাইএসকিউএল এবং মারিয়াডিবি-র জন্য দয়া করে এই এডাব্লুএস সরবরাহিত লিঙ্কটি দেখুন: https://aws.amazon.com/premiumsupport/ জ্ঞান- কেন্দ্রিক / ভিউ- স্টোরেজ-rds-mysql-mariadb/


স্টোরেজটি কী ব্যবহার করছে তা জানার জন্য দরকারী তবে আমার সমস্যাটি ছিল আমি জানতাম যে আমি কত সঞ্চয় রেখেছি।
স্টিফেন অস্টেরমিলার

1
আপনি এটির জন্য আরডিএস পর্যবেক্ষণে ফ্রিস্টোরেজস্পেস মেট্রিক দেখতে পারেন এবং এটি নথিতেও উল্লেখ করা হয়েছে।
বিগনেশ্বর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.