নির্দিষ্ট মাইএসকিউএল টেবিলটি কত ডিস্কের স্থান গ্রহণ করছে তা নির্ধারণ করার দ্রুত উপায় আছে কি? টেবিলটি মাইআইএসএএম বা ইনোডব হতে পারে।
নির্দিষ্ট মাইএসকিউএল টেবিলটি কত ডিস্কের স্থান গ্রহণ করছে তা নির্ধারণ করার দ্রুত উপায় আছে কি? টেবিলটি মাইআইএসএএম বা ইনোডব হতে পারে।
উত্তর:
একটি টেবিলের জন্য এটি mydb.mytableচালান:
SELECT (data_length+index_length) tablesize
FROM information_schema.tables
WHERE table_schema='mydb' and table_name='mytable';
SELECT (data_length+index_length)/power(1024,1) tablesize_kb
FROM information_schema.tables
WHERE table_schema='mydb' and table_name='mytable';
SELECT (data_length+index_length)/power(1024,2) tablesize_mb
FROM information_schema.tables
WHERE table_schema='mydb' and table_name='mytable';
SELECT (data_length+index_length)/power(1024,3) tablesize_gb
FROM information_schema.tables
WHERE table_schema='mydb' and table_name='mytable';
এখানে একটি জেনেরিক ক্যোয়ারী যেখানে সর্বাধিক ইউনিট ডিসপ্লে টিবি (টেরাবাইটস) হয়
SELECT
CONCAT(FORMAT(DAT/POWER(1024,pw1),2),' ',SUBSTR(units,pw1*2+1,2)) DATSIZE,
CONCAT(FORMAT(NDX/POWER(1024,pw2),2),' ',SUBSTR(units,pw2*2+1,2)) NDXSIZE,
CONCAT(FORMAT(TBL/POWER(1024,pw3),2),' ',SUBSTR(units,pw3*2+1,2)) TBLSIZE
FROM
(
SELECT DAT,NDX,TBL,IF(px>4,4,px) pw1,IF(py>4,4,py) pw2,IF(pz>4,4,pz) pw3
FROM
(
SELECT data_length DAT,index_length NDX,data_length+index_length TBL,
FLOOR(LOG(IF(data_length=0,1,data_length))/LOG(1024)) px,
FLOOR(LOG(IF(index_length=0,1,index_length))/LOG(1024)) py,
FLOOR(LOG(IF(data_length+index_length=0,1,data_length+index_length))/LOG(1024)) pz
FROM information_schema.tables
WHERE table_schema='mydb'
AND table_name='mytable'
) AA
) A,(SELECT 'B KBMBGBTB' units) B;
একবার চেষ্টা করে দেখো !!!
SELECT (data_length+index_length)/power(1024,2) tablesize_mb, table_name FROM information_schema.tables WHERE table_schema='mydb' order by tablesize_mb;mydbমাপ অনুসারে অর্ডার করা নাম এবং আকার সহ সমস্ত সারণীর একটি তালিকা পেতে ।
এটি InnoDB টেবিলগুলির জন্য সঠিক হবে না। ডিস্কে থাকা আকারটি ক্যোয়ারির মাধ্যমে রিপোর্ট করা চেয়ে বড়।
আরও তথ্যের জন্য দয়া করে পারকোনার এই লিঙ্কটি দেখুন।
https://www.percona.com/blog/2008/12/16/how-much-space-does-empty-innodb-table-take/
ডিফল্টরূপে মাইএসকিএল সহ লিনাক্স ইনস্টল করুন:
[you@yourbox]$ ls -lha /var/lib/mysql/<databasename>
NIXCRAFT এর mysql db লোকেশনের উপর ভিত্তি করে
রোল্যান্ডমাইএসকিউএলডিবিএর উত্তরের ভিত্তিতে আমি মনে করি যে আমরা একটি সারণীতে প্রতিটি স্কিমার আকার পেতে উপরেরটি ব্যবহার করতে পারি:
SELECT table_schema, SUM((data_length+index_length)/power(1024,1)) tablesize_kb
FROM information_schema.tables GROUP BY table_schema;
সত্যিই ভাল লেগেছে!
আপনি সম্ভবত ফাইলগুলির আকারটি দেখতে পারেন ...
প্রতিটি টেবিলটি ফোল্ডারের অভ্যন্তরে কয়েকটি পৃথক ফাইলের মধ্যে সংরক্ষণ করা হয় যা আপনি আপনার ডাটাবেস হিসাবে ডেকেছিলেন named এই ফোল্ডারগুলি mysql ডেটা ডিরেক্টরিতে সংরক্ষণ করা হয়।
সেখান থেকে আপনি ডিস্কের টেবিলের আকার পেতে একটি 'du -sh। *' করতে পারেন।
থেকে নেওয়া আমি কিভাবে পরীক্ষা কত ডিস্ক স্পেস আমার ডাটাবেসের ব্যবহার করছে না?
phpMyAdminবাম ফ্রেমে ডাটাবেস নামের উপর ক্লিক করে এবং ডান ফ্রেমে টেবিলগুলির জন্য আকারটি পড়ে আপনি নিজের কন্ট্রোল প্যানেলে দেখে মাইএসকিউএল টেবিলের আকারটি পরীক্ষা করতে পারেন ।
নীচের প্রশ্নের পাশাপাশি একই তথ্য পেতে সহায়তা করবে bytes
select SUM(data_length) + SUM(index_length) as total_size
from information_schema.tables
where table_schema = 'db_name'
and table_name='table_name';
আমি কেবল অনুসরণ হিসাবে ' mysqldiskusage ' সরঞ্জামটি ব্যবহার করব
$ mysqldiskusage --server=user:password@localhost mydbname
# Source on localhost: ... connected.
# Database totals:
+------------+----------------+
| db_name | total |
+------------+----------------+
| mydbaname | 5,403,033,600 |
+------------+----------------+
Total database disk usage = 5,403,033,600 bytes or 5.03 GB