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


144

ওয়েব হোস্ট নির্বাচন করতে আমার মাইএসকিউএল ডাটাবেসটি কতটা স্থান ব্যবহার করে তা জানতে চাই। আমি কমান্ডটি পেয়েছি SHOW TABLE STATUS LIKE 'table_name'তাই যখন আমি জিজ্ঞাসা করি তখন আমি এরকম কিছু পাই:

Name       | Rows | Avg. Row Length | Data_Length | Index Length
----------   ----   ---------------   -----------   ------------
table_name   400          55            362000        66560
  • সংখ্যাগুলি বৃত্তাকার হয়।

তাহলে কি আমার কাছে এই টেবিলের জন্য 362000 বা 400 * 362000 = 144800000 বাইট ডেটা আছে? এবং সূচী দৈর্ঘ্য বলতে কী বোঝায়? ধন্যবাদ!


আপনার কাছে 362000 + 66560. ডেটা_লেন্থ + ইনডেক্স দৈর্ঘ্য
মান্দজা


এই পৃষ্ঠাটি আপনাকে সঠিক উত্তর দেবে rathishkumar.in/2017/12/…
রথিশ

উত্তর:


281

এস.প্রকাশ থেকে, মাইএসকিউএল ফোরামে পাওয়া :

SELECT table_schema "database name",
    sum( data_length + index_length ) / 1024 / 1024 "database size in MB",
    sum( data_free )/ 1024 / 1024 "free space in MB"
FROM information_schema.TABLES
GROUP BY table_schema; 

বা সহজে অনুলিপি-পেস্ট করার জন্য একটি লাইনে:

SELECT table_schema "database name", sum( data_length + index_length ) / 1024 / 1024 "database size in MB", sum( data_free )/ 1024 / 1024 "free space in MB" FROM information_schema.TABLES GROUP BY table_schema; 

7
এমবিতে ফ্রি স্পেস বলতে কী বোঝায়? আমার কাছে 100 জিবি ফ্রি রয়েছে তবে এটি 1 জিবি ফ্রি কম রিপোর্ট করে।
বার্থ

1
ডকুমেন্টেশন অনুসারে @ বার্থ এর অর্থ "InnoDB টেবিলের জন্য বাইটে বিনামূল্যে স্থান" means দুর্ভাগ্যক্রমে এর কোনও ব্যাখ্যা নেই যার অর্থ:
ku

13
বাইটে খালি স্থানটির অর্থ হ'ল - এর অর্থ হল আপনি যদি টেবিলটিকে অপ্টিমাইজ করেন বা স্ক্র্যাচ থেকে টেবিলটি পুনর্নির্মাণ করেন তবে পরিমাণের পরিমাণটি পুনরুদ্ধার করা যেতে পারে। ডাটাবেসগুলি ডিস্কে তথ্য সংরক্ষণ করে, তারা এগুলি ব্লকগুলিতে বরাদ্দ করে; রেকর্ড মুছে ফেলা প্রায়শই ব্যবহৃত ব্লকগুলির মধ্যে একটি ব্লককে মুক্ত করে এবং অন্যান্য স্থানের সমস্ত ব্লকটি স্থানটি ব্যবহারের জন্য স্থানান্তরিত করা খুব ব্যয়বহুল, যাতে এটি "ফ্রি" হিসাবে চিহ্নিত থাকে। পরে স্থানটি ডাটাবেস ইঞ্জিন নিজেই ব্যবহার করতে পারে, বা OPTIMIZE TABLE foo(মাইআইএসএএম) ব্যবহার করে পুনরায় দাবি করা যেতে পারে বা ইনোডিবি টেবিলগুলির জন্য + বিশ্লেষণ পুনরায় তৈরি করতে পারে ।
রাজ্জিত

92

মাইকিউএল ক্লায়েন্টে নিম্নলিখিত কমান্ডটি চালিয়ে আপনি আপনার মাইএসকিএল ডাটাবেসের আকার পেতে পারেন

SELECT  sum(round(((data_length + index_length) / 1024 / 1024 / 1024), 2))  as "Size in GB"
FROM information_schema.TABLES
WHERE table_schema = "<database_name>"

30

আপনি যদি phpMyAdmin ব্যবহার করেন তবে এটি আপনাকে এই তথ্য বলতে পারে।

কেবল "ডাটাবেসগুলি" (উপরে মেনু) এ যান এবং "পরিসংখ্যান সক্ষম করুন" ক্লিক করুন।

আপনি এরকম কিছু দেখতে পাবেন:

phpMyAdmin স্ক্রিনশট

আকারগুলি বাড়ার সাথে সাথে এটি সম্ভবত কিছুটা নির্ভুলতা হারাবে, তবে এটি আপনার উদ্দেশ্যগুলির জন্য যথেষ্ট সঠিক হওয়া উচিত।


আমি বর্তমানে 000webhost ব্যবহার করছি। এটিতে পিএইচপিএমআইএডমিন রয়েছে তবে আমি একটি "সক্ষম পরিসংখ্যান" চেকবাক্সটি খুঁজে পেলাম না। এর জন্য (হয়ত) কোনও প্রশ্ন রয়েছে?
মার্ভিন

1
@মারভিন ওয়েল, এটি সম্ভবত সম্ভব যে ওয়েবহোস্টে phpMyAdmin এর একটি পুরানো সংস্করণ ইনস্টল করা আছে। আমি জানি না কোন সংস্করণে এই বৈশিষ্ট্যটি চালু হয়েছিল।
রাদু মুর্জিয়া

আপনার সাইডবারে, শীর্ষে হোম আইকনটিতে ক্লিক করুন যা আপনাকে হোম পৃষ্ঠায় নিয়ে যায়। ডান উইন্ডোতে, 'ডাটাবেসগুলি' ক্লিক করুন। এটি ডাটাবেসের একটি কলামের সারণি প্রদর্শন করে, এর নীচে 'পরিসংখ্যান সক্ষম করুন' নামক একটি লিঙ্ক রয়েছে
VeeK


3

মূলত দুটি উপায় রয়েছে: ক্যোরি ডিবি (ডেটা দৈর্ঘ্য + সূচক দৈর্ঘ্য) বা ফাইলের আকার পরীক্ষা করুন। সূচকের দৈর্ঘ্য সূচীতে সঞ্চিত ডেটা সম্পর্কিত।

এখানে সবকিছু বর্ণিত হয়েছে:

http://www.mkyong.com/mysql/how-to-calculate-the-mysql-database-size/


ঠিক আছে, এই পৃষ্ঠাটি আমার প্রশ্নের উত্স। তবে এই ক্যোয়ারী অনুসারে আমার ০.০ এমবি রয়েছে, যা আমাকে বেশ নিরাপদ রাখে। আমি আশা করি এটি সত্য! :) ধন্যবাদ!
মার্ভিন

0

উত্তরের কোনওটির মধ্যে ওভারহেডের আকার এবং মেটাডেটা আকারের টেবিলগুলি অন্তর্ভুক্ত নয়।

এখানে একটি ডেটাবেস দ্বারা বরাদ্দ "ডিস্ক স্পেস" এর আরও সঠিক অনুমান দেওয়া হচ্ছে is

SELECT ROUND((SUM(data_length+index_length+data_free) + (COUNT(*) * 300 * 1024))/1048576+150, 2) AS MegaBytes FROM information_schema.TABLES WHERE table_schema = 'DATABASE-NAME'

5
আপনি বিস্তারিত বলতে পারেন? বিশেষত আপনার ধ্রুবক 300এবং 150?
মেলিবিয়াস

দয়া করে, আপনি বিস্তারিত বলতে পারেন?
অ্যালান আন্দ্রেড

0

SUM(Data_free) বৈধ হতে পারে বা নাও হতে পারে । এটি নির্ভর করে ইতিহাসের উপর innodb_file_per_table। আরও আলোচনা এখানে পাওয়া যায় ।



0

আপনি যদি মাইএসকিএল ওয়ার্কবেঞ্চ ব্যবহার করেন তবে ডাটাবেস আকার, প্রতিটি টেবিলের আকার, সূচকের আকার ইত্যাদি সমস্ত বিবরণ পাওয়া খুব সহজ

  1. স্কিমাতে রাইট ক্লিক করুন
  2. স্কিমা পরিদর্শক বিকল্পটি নির্বাচন করুন

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

  3. এটি স্কিমা আকারের সমস্ত বিবরণ দেখায়

  4. প্রতিটি টেবিলের আকার দেখতে টেবিল ট্যাব নির্বাচন করুন ।

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

  5. টেবিলের আকার ডেটা দৈর্ঘ্যের কলামে ডিপ্লেড


0

আপনি যদি আমাদের এই কমান্ডটি সমস্ত মাইএসকিউএল ডাটাবেসগুলির আকার খুঁজতে চান তবে এটি মেগাবাইটে তাদের নিজ নিজ আকারগুলি প্রদর্শন করবে;

SELECT table_schema "database", sum(data_length + index_length)/1024/1024 "size in MB" FROM information_schema.TABLES GROUP BY table_schema;

আপনার কাছে যদি বড় ডেটাবেস থাকে তবে গিগাবাইটের ফলাফল দেখানোর জন্য আপনি নীচের কমান্ডটি ব্যবহার করতে পারেন;

SELECT table_schema "database", sum(data_length + index_length)/1024/1024/1024 "size in GB" FROM information_schema.TABLES GROUP BY table_schema;

আপনি যদি কেবলমাত্র একটি নির্দিষ্ট ডাটাবেসের আকার দেখাতে চান, উদাহরণস্বরূপ YOUR_DATABASE_NAME, আপনি নিম্নলিখিত কোয়েরিটি ব্যবহার করতে পারেন;

SELECT table_schema "database", sum(data_length + index_length)/1024/1024/1024 "size in GB" FROM information_schema.TABLES WHERE table_schema='YOUR_DATABASE_NAME' GROUP BY table_schema;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.