3 روش برای بررسی اندازه جدول و پایگاه داده در MySQL

چه مدیر پایگاه داده باشید و چه توسعه‌دهنده برنامه، مدیریت پایگاه‌های داده MySQL و درک اندازه آن‌ها برای اطمینان از تخصیص کارآمد منابع، جلوگیری از مشکلات عملکرد و تسهیل تصمیم‌گیری‌های آگاهانه در مورد ذخیره‌سازی و مدیریت داده‌ها بسیار مهم است.این یک جنبه حیاتی از مدیریت پایگاه داده است که می‌توانید چندین روش برای بررسی جدول و اندازه پایگاه داده در MySQL پیدا کنید. در این مطلب، سه روش برای تعیین اندازه جدول و پایگاه داده در MySQL را بررسی خواهیم کرد.


مروری بر مدیریت اندازه پایگاه داده MySQL

کسب و کارها حجم شگفت انگیزی از داده‌ها را در طول عملیات خود تولید می‌کنند. همه این داده‌ها در پایگاه داده کسب و کار ذخیره می‌شود.
بنابراین، پیگیری اندازه پایگاه‌های داده MySQL برای حفظ عملکرد بهینه و تخصیص کارآمد منابع بسیار مهم است.
بررسی اندازه پایگاه داده در MySQL به مدیران اجازه می‌دهد:

  • تنگناهای عملکرد بالقوه ناشی از مجموعه داده‌های بزرگ را شناسایی کنید.
  • تخصیص منابع مناسب برای اطمینان از عملکرد روان سرور MySQL.
  • پیش بینی نیازهای ذخیره سازی و نیازهای زیرساختی، برای مقیاس پذیری آینده برنامه ریزی کنید.

اندازه پایگاه داده مستقیم بر عملکرد تاثیر می‌گذارد، زیرا دیتابیس‌های بزرگتر ممکن است منجر به کندتر شدن زمان اجرای کوئری و افزایش عملیات I/O دیسک شود. علاوه بر این، فضای ناکافی دیسک می‌تواند منجر به خطا و خرابی در صورت رسیدن پایگاه‌های داده به محدودیت‌های ذخیره سازی خود شود.
روش‌هایی که در این آموزش در مورد آنها صحبت خواهیم کرد به شما امکان می‌دهد اندازه جداول و پایگاه‌های داده را بررسی کنید.

نحوه بررسی پایگاه داده MySQL و اندازه جدول

اکنون به جزئیات سه روشی می‌پردازیم که می‌توانید برای بررسی اندازه پایگاه داده در MySQL استفاده کنید.
توصیه می‌کنم روشی را انتخاب کنید که به بهترین وجه با تنظیمات و کانفیگ سیستم شما هماهنگ باشد.


پیش نیازها

قبل از نقل مکان، مطمئن شوید که موارد زیر را دارید

  • دسترسی به شل سرور
  • یک MySQL DB با فرمت جداول (بهتر است پر از داده باشد).
  • دسترسی به phpmyadmin
  • شما MySQL Workbench را روی سیستم خود دارید

روش شماره 1: بررسی اندازه جدول و پایگاه داده در MySQL از طریق phpMyAdmin

phpMyAdmin یک رابط مبتنی بر وب برای مدیریت پایگاه‌های داده MySQL است. این یک گزینه کاربر پسند با ابزارهای بصری برای مدیریت پایگاه داده است.
می توانید از phpMyAdmin برای به دست آوردن جزئیات در مورد پایگاه داده‌ها و جداول MySQL از جمله اندازه آنها استفاده کنید. بیایید موارد استفاده را در این زمینه ببینیم.

اندازه یک پایگاه داده را دریافت کنید

وارد صفحه مدیریت phpMyAdmin شوید و db هدف را از پنل سمت چپ انتخاب کنید.

ستون Size را پیدا کنید که اندازه جداول جداگانه را در پایگاه داده انتخاب شده نمایش می‌دهد.

به دنبال اندازه تجمعی جداول در پایگاه داده باشید که اغلب در پایین صفحه یافت می‌شود.

اندازه تمام پایگاه های داده روی سرور را بدست آورید

برای اطلاع از اندازه کل همه پایگاه‌های داده در phpMyAdmin، به صفحه index رفته و روی تب Databases در نوار پیمایش بالا کلیک کنید.


کادر Enable statistics را پیدا کرده و روی آن کلیک کنید.


توجه: فعال کردن آمار ممکن است ترافیک بین MySQL و سرورهای وب را افزایش دهد.به شما توصیه می‌کنیم که از این ویژگی در دوره‌های کم ترافیک استفاده کنید تا از overload سرور جلوگیری کنید.

صفحه  Database Statistics، آمار کلی همه دیتابیس‌ها، از جمله اندازه‌های آنها را نشان می‌دهد و ستون Total اعداد در ستون‌های Data و Indexes را جمع‌بندی می‌کند.

اندازه یک جدول را در یک پایگاه داده به دست آورید

شما می توانید اندازه یک جدول پایگاه داده را در phpMyAdmin دریافت کنید. با کلیک کردن روی نام پایگاه داده مورد نظر در قسمت سمت چپ شروع کنید.
برای فیلتر کردن جداول پایگاه داده از نوار جستجو استفاده کنید یا به پایین بروید. در صورت نیاز، می‌توانید به صورت دستی جدول را در لیست جستجو کنید.
اندازه جدول در ستون Size نمایش داده می‌شود. اگر ستون، قابل مشاهده نیست، به سمت راست حرکت کنید تا زمانی که قابل مشاهده شود.

اندازه جدول را برای همه دیتابیس‌ها به دست آورید

شما می‌توانید اندازه تمام جداول پایگاه داده را در phpMyAdmin با استفاده از کوئری SQL پیدا کنید. برای این کار به صفحه index رفته و تب SQL را انتخاب کنید.

اکنون، این کوئری SQL را وارد نمائید تا اندازه جدول برای همه دیتابیس‌های روی سرور نمایش داده شود:


mysql> SELECT TABLE_SCHEMA AS `Database`,
  TABLE_NAME AS `Table`,
 ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM information_schema.TABLES
ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;


توجه داشته باشید که با تقسیم اطلاعات طول دو بار بر 1024، اندازه آن بر حسب مگابایت به دست می‌آید. برای اجرای کوئری و بازیابی نتیجه، Go را فشار دهید.
خروجی کوئری SQL اندازه جدول را برای همه پایگاه‌های داده در آخرین ستون نشان می‌دهد.

می‌توانید با کشیدن و رها کردن، ستون‌ها را دوباره مرتب کنید تا ستون به شروع نزدیک شود. علاوه بر این، می‌توانید روی نام ستون کلیک کنید تا خروجی را بر اساس اندازه مرتب کنید.

روش شماره 2: از عبارت SELECT MySQL استفاده کنید

شما می‌توانید از طریق رابط خط فرمان MySQL به اندازه پایگاه داده‌ها و جداول دسترسی داشته باشید.
با راه اندازی ترمینال و اجرای دستور زیر برای راه اندازی شل MySQL به این shell دسترسی پیدا کنید:

# mysql -u -p

پس از درخواست رمز عبور کاربر MySQL خود را وارد کرده و Enter را فشار دهید. اعلان به mysql> تغییر می‌کند تا نشان دهد که اکنون در MySQL shell هستید.

اکنون، می توانید از دستورات SELECT برای بازیابی اندازه پایگاه داده و جدول در واحد مگابایت استفاده کنید.

اندازه یک پایگاه داده را دریافت کنید

برای ارزیابی اندازه یک پایگاه داده، عبارت زیر را اجرا کنید:


mysql> SELECT TABLE_SCHEMA AS `Database`, 
              ROUND(SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS       `Size (MB)` 
              FROM information_schema.TABLES
             WHERE TABLE_SCHEMA="";

نام پایگاه داده مورد نظر را جایگزین کنید.

اندازه همه دیتابیس‌ها را روی سرور دریافت کنید

برای نمایش اندازه همه پایگاه‌های داده، کوئری زیر را در MySQL shell اجرا کنید:


mysql> SELECT TABLE_SCHEMA AS `Database`, 
                ROUND(SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS    `Size (MB)` 
                FROM information_schema.TABLES
                GROUP BY TABLE_SCHEMA 
                ORDER BY SUM(DATA_LENGTH + INDEX_LENGTH) DESC;

این کوئری اندازه‌های پایگاه داده را به ترتیب نزولی بر حسب مگابایت مرتب می‌کند.

اندازه جدول را در یک پایگاه داده به دست آورید

برای فهرست کردن اندازه جدول در یک پایگاه داده، کوئری زیر را اجرا کنید:


mysql> SELECT TABLE_NAME AS `Table`,
              ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) AS  `Size (MB)` 
              FROM information_schema.TABLES 
              WHERE table_schema = "
              ORDER BY (data_length + index_length) DESC;

را با نام واقعی پایگاه داده جایگزین کنید.
خروجی جداول را بر اساس اندازه به ترتیب نزولی بر حسب مگابایت نمایش می‌دهد.

نمایش اندازه جدول برای همه پایگاه‌های داده

کوئری زیر را برای نمایش اندازه جدول برای همه پایگاه‌های داده توصیه می‌کنیم:


mysql> SELECT TABLE_SCHEMA AS `Database`,
              TABLE_NAME AS `Table`,
              ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
              FROM information_schema.TABLES
              ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;


این کوئری نام جداول و دیتابیس و اندازه جداول را بر حسب مگابایت خروجی می‌دهد. می‌توانید خط آخر را تغییر دهید تا بر اساس پارامتر دیگری در صورت نیاز مرتب شود.

روش شماره 3: از MySQL Workbench استفاده کنید

قبل از اینکه به جزئیات استفاده از MySQL Workbench بپردازیم، باید بدانید که می‌توانید از روش‌های SELECT query که در بخش قبل در MySQL Workbench بحث کردیم استفاده کنید.
با این حال، این ابزار دو روش اضافی را برای ارزیابی سریع اندازه پایگاه داده و جداول آن ارائه می‌دهد.
با راه اندازی MySQL Workbench و ایجاد اتصال به سرور پایگاه داده شروع کنید.

اندازه یک پایگاه داده را دریافت کنید

برای بازیابی اندازه یک پایگاه داده در MySQL Workbench، روی schema که می‌خواهید در پانل ناوبری سمت چپ بررسی نمائید، راست کلیک کنید.
Schema Inspector را از منو انتخاب کنید. در قسمت سمت راست، به تب Index بروید تا اندازه پایگاه داده را مشاهده کنید.
توجه داشته باشید که این اندازه نمایش داده شده یک تخمین تقریبی بر حسب بایت باینری است.

اندازه جدول را در یک پایگاه داده دریافت کنید

برای به دست آوردن اندازه یک جدول در یک پایگاه داده خاص، به Schema Inspector برای پایگاه داده حاوی جدول(های) مورد نظر دسترسی داشته باشید.

در پنجره Schema Inspector، به تب Tables بروید.

ستون Data Length اندازه هر جدول را نشان می‌دهد.

می‌توانید طول داده‌های جداول جداگانه را برای تعیین اندازه کل جمع آوری کنید. همچنین می توانید از عبارت SELECT استفاده کنید.

محدودیت اندازه جدول

دانستن محدودیت‌ها به مدیران کمک می‌کند تا ساختار پایگاه داده را به‌طور موثر برنامه‌ریزی کنند و هشدارها را تنظیم کنند تا سیستم‌های مانیتورینگ بتوانند از نزدیک شدن جدول‌ها به آستانه اندازه خود مطلع شوند تا از خطا در هنگام درج یا ویرایش داده‌ها جلوگیری کنند.
برای جداول MyISAM، محدودیت پیش‌فرض برای هر دو فایل date و index روی 256 ترابایت تنظیم شده است. در حالی که حد پیش فرض 256 ترابایت است، حداکثر محدودیت 65536 ترابایت است.

در مورد جداول InnoDB، حداکثر اندازه محدودیت 256 ترابایت است که با اندازه فضای کامل جدول مطابقت دارد. ما توصیه می‌کنیم جدول InnoDB را به چند جدول تقسیم کنید تا مدیریت و عملکرد را بهبود بخشد.

سرور مجازی لینوکس، با دسترسی SSH در توزیع‌های مختلف و محبوب در دسترس است.
خرید سرور مجازی در پنج موقعیت جغرافیایی ایران، ترکیه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.

پایگاه‌های داده اتوماسیون و مانیتورینگ

نظارت خودکار بر اندازه پایگاه داده در MySQL می‌تواند ردیابی رشد داده‌ها را ساده و مشکلات بالقوه را شناسایی کند. چندین رویکرد و ابزار مانیتور مستمر پایگاه داده را تسهیل می‌کنند:

ابزارهای مانیتورینگ خودکار

استفاده از ابزارهای مانیتورینگ اختصاصی مانند Nagios، Zabbix، یا Prometheus با داشبورد Grafana، مدیران را قادر می‌سازد تا اندازه پایگاه داده را در زمان واقعی ردیابی کنند. این ابزارها گزینه‌هایی را برای تنظیم هشدارها، ایجاد داشبوردهای سفارشی و تولید گزارش برای تجسم روند رشد پایگاه داده ارائه می‌دهند.

اسکریپت های سفارشی و Cron Jobs

مدیران می‌توانند اسکریپت‌ها یا کوئری‌های سفارشی را برای بازیابی اطلاعات اندازه پایگاه داده از MySQL ایجاد کنند و آنها را به عنوان کارهای cron برای اجرای منظم برنامه ریزی کنند.
این اسکریپت‌ها می‌توانند معیارهای اندازه را واکشی و آنها را در یک سیستم مانیتورینگ متمرکز ذخیره کنند یا بر اساس آستانه‌های از پیش تعریف شده هشدارها را راه‌اندازی کنند.

ادغام با سیستم های هشدار دهنده

ادغام نظارت بر اندازه پایگاه داده با سیستم‌های هشدار مانند PagerDuty، Slack یا اعلان‌های ایمیل به مدیران اجازه می‌دهد زمانی که جدول‌ها و پایگاه‌های داده از آستانه‌های اندازه از پیش تعریف‌شده فراتر می‌روند یا سیستم الگوهای رشد غیرعادی را تشخیص می‌دهد، هشدارهای بلادرنگ را دریافت کنند.

هشدارهای مبتنی بر آستانه

مدیران می‌توانند هشدارهای مبتنی بر آستانه را برای راه‌اندازی اعلان‌ها هنگامی که اندازه پایگاه‌داده به محدودیت‌های مشخص شده می‌رسد یا نرخ رشد غیرعادی نشان می‌دهند، پیکربندی کنند. این رویکرد پیشگیرانه به تیم‌ها اجازه می‌دهد تا مسائل مربوط به اندازه را به سرعت قبل از اینکه بر عملکرد تاثیر بگذارند یا منجر به کمبود منابع شوند، رسیدگی کنند.
با اتوماسیون مانیتور بر اندازه پایگاه داده و ادغام با سیستم‌های هشدار، مدیران می‌توانند به طور فعال مسائل مربوط به اندازه را شناسایی و به آنها رسیدگی نموده و از ثبات، عملکرد و مقیاس پذیری محیط‌های MySQL اطمینان حاصل کنند.

جمع‌بندی

از طریق این مطلب، روش‌های مختلفی را برای بررسی پایگاه داده MySQL و اندازه‌های جدول، با توجه به اولویت‌ها و محیط‌های مختلف بیان کرده‌ایم. کاربران می‌توانند به طور موثر منابع پایگاه داده خود را مانیتور کنند، چه از طریق رابط‌های بصری phpMyAdmin و MySQL Workbench یا انعطاف پذیری کوئری‌های SQL در رابط خط فرمان.
درک اندازه پایگاه داده و جدول برای تخصیص کارآمد منابع، بهینه سازی سیستم و اطمینان از عملکرد بهینه پایگاه های داده MySQL برای تصمیم گیری آگاهانه و حفظ یک محیط MySQL به خوبی مدیریت شده ضروری است.