কুয়েরী অপটিমাইজেশন (ড্রাফট)

“কুয়েরী অপটিমাইজেশন” হচ্ছে ডাটাবেজ ম্যানেজমেন্ট সিস্টেম এর একটা ফাংশন। পসিবল কুয়েরী প্লান থেকে কিভাবে এফিশিয়েন্ট কুয়েরী লেখা এবং এক্সিকিউট করা যায় তা ঠিক করে কুয়েরী অপটিমাইজার।

যেভাবে কুয়েরী অপটিমাইজেশন করতে হয়

  • Join ordering
  • Query planning for nested SQL queries
  • Cost estimation

Join ordering

কুয়েরী প্লানের পারফরমেন্স মুলত কোন অর্ডারে টেবিল জয়েন করা হয়েছে তার উপর নির্ভর করে। মনে করুন তিনটি টেবিল A,B এবং C এদের রো আছে যথাক্রমে ১০,১০০,২০০। কোন কুয়েরী প্লানে যদি প্রথমে B ও C জয়েন করানো হয় এবং শেষে তাদের সাথে A জয়েন করানো হয় তাহলে কুয়েরী এক্সিকিউট করতে সময় ও মেমোরি বেশি লাগবে। কিন্তু যদি প্রথমে A ও B এবং শেষে C জয়েন করানো হয় তাহলে সময় এবং মেমোরি কম লাগবে। কারন A তে রো এর সংখ্যা কম।

Cost estimation

1)

SELECT * FROM `users`

সাধারণত * দ্বারা সব কলাম বা ফিল্ড এর ভ্যালু এর পাওয়া যায়। কিনতু যদি আমাদের শুধু মাত্র কয়েকটি কলাম বা ফিল্ড এর দরকার পড়ে , তাহলে আমরা শুধুমাত্র ওই কয়েকটি কলাম বা ফিল্ড এর নাম উল্লেখ করে দিতে পারি।

SELECT email,password FROM `users`

2)

SELECT * FROM `users` WHERE name='niloy'

যখন আপনি একটি রো এক্সপেক্ট করছেন তখন LIMIT 1 ব্যবহার করাই ভাল

SELECT * FROM `users` WHERE name='niloy' LIMIT 1

3) ইনডেক্সিং । ইনডেক্সিং ব্যবহার করে আপনার কুয়েরী টাইম অনেক কমিয়ে নিয়ে আসতে পারেন । তবে আপনি সেইসব সব ফিল্ডই ইনডেক্সিং করবেন , যে সব ফিল্ড আপনি WHERE কনন্ডিশন এ ব্যবহার করছেন।