এই নির্দেশিকা ব্যাখ্যা করবে কিভাবে MySQL-এ "ধীরগতির ক্যোয়ারী" লগিং সেট আপ করতে হয় যাতে আপনি নির্ধারণ করতে পারেন কোন প্রশ্নগুলি মন্থরতার কারণ হচ্ছে৷
আপনি যদি একটি প্রোডাকশন মাইএসকিউএল সার্ভার চালান বা পরিচালনা করেন তবে সম্ভবত এটি কখনও কখনও একটু ধীর গতিতে চলে এবং কেন তা খুঁজে বের করার জন্য একটি খুব সময়সাপেক্ষ প্রচেষ্টা হতে পারে। ডিবিকে ধীর করে দেয় এমন প্রশ্নটিকে চিহ্নিত করতে সক্ষম হওয়ার জন্য ট্র্যাক করা কঠিন হতে পারে। আপনাকে সাহায্য করার জন্য MySQL এর একটি বিকল্প আছে। এটি ধীরগতির প্রশ্নগুলি লগ করার একটি বিকল্পের সাথে আসে। এইভাবে যখন আপনি আপনার ডাটাবেস সার্ভার স্বাভাবিকের চেয়ে ধীর গতিতে চলতে দেখেন আপনি এই লগ ফাইলটি একটি পাঠ্য সম্পাদকে খুলতে পারেন এবং দেখতে পারেন কোন প্রশ্নগুলি ধীর গতিতে চলছে৷ চলুন দেখি কিভাবে এটি সেট আপ করতে হয়।
প্রথমে আপনার MySQL সার্ভারের কনফিগারেশন ফাইলটি খুলুন, my.cnf . Linux-এ এটি /etc-এ থাকা উচিত ডিরেক্টরি প্যারামিটার log-slow-queries কিনা দেখতে দেখুন ইতিমধ্যে সেট করা হয়েছে। যদি না হয়, তাহলে এটিকে এরকম কিছুতে সেট করুন:
log-slow-queries =/var/log/mysql/mysql-slow.log
ধীরগতির ক্যোয়ারী হিসাবে বিবেচিত হওয়ার জন্য একটি প্রশ্ন উপযুক্ত হওয়ার আগে আপনাকে সময়ের দৈর্ঘ্য সেট করতে হবে . আমার সার্ভারে আমি এটি 30 সেকেন্ডে সেট করেছি, এভাবে:
long_query_time =30
MySQL সার্ভার পুনরায় চালু করুন, এবং তারপর mysql-slow.log দেখুন ফাইল যখনই একটি ক্যোয়ারী সম্পূর্ণ হতে 30 সেকেন্ডের বেশি সময় নেয়, বা আপনি my.cnf এ যা সেট করেন , প্রশ্নটি mysql-slow.log এ লগ করা হবে। এখন MySQL প্রশ্নগুলি ডিবাগ করা আপনার জন্য অনেক সহজ এবং দ্রুত হওয়া উচিত। এই ফাইলটি একবারে একবার চেক করতে মনে রাখবেন। যা সাহায্য করতে পারে তা হল প্রতি কয়েক দিনে একবার এই ফাইলটি আপনাকে মেল করার জন্য একটি ক্রোন কাজ সেটআপ করা৷
৷