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