নীচে রোল্যান্ডোর উত্তরের পরিপূরক তথ্য হিসাবে আমি এই উত্তরটি সরবরাহ করছি।
সার্ভার উত্পাদনের আগে
সর্বাধিক মাইএসকিউএল দ্বারা ব্যবহৃত সবচেয়ে বড় টেবিলের উপর ভিত্তি করে ইনোডাব_বফার_পুল_সাইজ গণনা করুন। ডাটাবেসে তাদের আকারের ভিত্তিতে বৃহত্তম সারণীগুলি সনাক্ত করতে আপনি এই স্ক্রিপ্টটি ব্যবহার করতে পারেন:
select table_schema, table_name, round(data_length/1024/1024,2) as size_mb
from information_schema.tables where table_schema like 'my_database'
order by size_mb desc;
+--------------+-------------------------+---------+
| table_schema | table_name | size_mb |
+--------------+-------------------------+---------+
| heavybidder | user | 522.55|
| heavybidder | bid | 121.52|
| heavybidder | item_for_sale | 10.52|
| heavybidder | account_user | 5.02 |
| heavybidder | txn_log | 4.02 |
| heavybidder | category | 0.02 |
+--------------+-------------------------+---------+
এখন আমরা যে টেবিলগুলি আমাদের ডাটাবেসে সবচেয়ে বড় তা জানি, কোনটি সর্বাধিক ঘন ঘন ব্যবহৃত হয় তা আমাদের নির্ধারণ করতে হবে। এটি করতে, আমি কোন টেবিলটি সর্বাধিক ব্যবহার করা হচ্ছে তা দেখার জন্য জেট প্রোফাইলার (জেপি) এর মতো একটি প্রোফাইলিং প্রোগ্রাম ব্যবহার করব। সবচেয়ে বেশি ঘন ঘন কোন টেবিলে অ্যাক্সেস করা হচ্ছে তা জে পি আপনাকে দেখায়। এখানে জেপিতে সেই বিভাগের একটি স্ক্রিনশট রয়েছে
সুতরাং এটি মনে রেখে, আমি এখন জানি যে ব্যবহারকারী এবং বিড টেবিলগুলি প্রায় 640MB ডিস্ক স্পেস নেয়, তারা জেপি অনুসারে খুব ঘন ঘন ব্যবহৃত হয় এবং যার অর্থ মাইএসকিউএল তাদের সূচী এবং ডেটা রোল্যান্ডো হিসাবে সংরক্ষণ করতে চলেছে নীচে তার মন্তব্যে উল্লেখ করুন।
আমার বৃহত্তম এবং সর্বাধিক ঘন ঘন ব্যবহৃত টেবিলগুলির জন্য ডেটা সঞ্চয় করার জন্য মাইএসকিউএলের পর্যাপ্ত মেমরি ছিল তা নিশ্চিত করার জন্য, আমি তখন 640 এমবিতে ইনোডাব_বফার_পুল_সাইজটি সংজ্ঞায়িত করব।
কিছু অতিরিক্ত বিবেচনা রয়েছে, তবে সেগুলি ইনডোড_বফার_পুল_সাইজে প্রয়োগ হয় না।
এটি কি 32 বিট বা 64 বিট সিস্টেম? 32 বিট সিস্টেমে আপনি PAE সক্রিয় না করলে আপনি 4GB এর মধ্যে সীমাবদ্ধ। উইন্ডোজে, এর অর্থ উইন্ডোজ এন্টারপ্রাইজ বা ডেটাসেন্টার সংস্করণগুলি চালানো।
আপনার সিস্টেমে চলমান অন্যান্য প্রক্রিয়াগুলির কতটুকু স্মৃতি দরকার? ডেডিকেটেড মাইএসকিউএল সার্ভারে, আমি ওএসের জন্য 5% থেকে 10% এর মধ্যে চলে যাব। উইন্ডোজে আপনি মেমরির ব্যবহার বিশ্লেষণ করতে প্রক্রিয়া এক্সপ্লোরার ব্যবহার করতে পারেন। লিনাক্সে আপনার সিস্টেস্টাট, ফ্রি, এইচটোপ, শীর্ষ এবং ভিএমস্ট্যাট রয়েছে।
ডাটাবেসটি কি কেবল ইনোডাব টেবিল বা ইনোডব এবং মাইআইএসএএম এর মিশ্রণ দিয়ে তৈরি? যদি এটি দুটির সংমিশ্রণ হয় তবে আমি কী_ক্যাচের জন্য মেমরি আলাদা করে রাখব, ভেরিয়েবলগুলিতে যোগ দিতে, ক্যোয়ারী ক্যাশে, ইত্যাদি ইত্যাদি পরে সার্ভার উত্পাদনের পরে আপনি আপনার মাইআইএসএএম হিট অনুপাত গণনা করতে পারেন।
সার্ভার পরে উত্পাদন হয়
ইনোডাবের বর্তমান হিট অনুপাত কত?
1 - (ইনোডাব_বফার_পুল_প্রেড / ইনানোডব_বাফলার_পুল_প্রেম_প্রয়োজনসমূহ)।
কী ক্যাশে হিট অনুপাত
1 - (কী_প্রাণ / কী_প্রেম_আবেদনগুলি)
আমি সাধারণত অনুপাতটি যতটা সম্ভব 100% এর কাছাকাছি পাওয়ার চেষ্টা করি।
আপনার টেবিলগুলি বাফার পুলে কতটা ফিট করে
আপনি এই লিঙ্কটি উল্লেখ করে আপনার টেবিলের ডেটা আপনার বাফারপুলে কতটা ফিট করে তাও দেখতে পারেন, যা প্রদত্ত টেবিলের (সিএনটি) জন্য বাফার পুলে কত পৃষ্ঠা রয়েছে, সেগুলির মধ্যে কতগুলি নোংরা (নোংরা) তা দেখানোর একটি উপায় সরবরাহ করে , এবং সূচকের শতাংশটি মেমরিতে ফিট করে (ফিট_প্যাক্ট) "। শুধুমাত্র পারকোনা সার্ভারে প্রযোজ্য
http://www.mysqlperformanceblog.com/2010/12/09/how-well-does-your-table-fits-in-innodb-buffer-pool/