কম্পিউটার টিউটোরিয়াল

MySQL-এ ORDER BY সাথে EXPLAIN কমান্ড ব্যবহার

EXPLAIN কমান্ড কোয়েরি এক্সিকিউশন প্ল্যান দেখায়। ORDER BY কীভাবে ইনডেক্স ব্যবহার করে বা ফাইলসর্ট করে তা বোঝার জন্য এটি উপকারী।

উদাহরণ:

টেবিল তৈরি:

CREATE TABLE DemoTable606 (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName VARCHAR(100)
);

রেকর্ড যোগ করা:

INSERT INTO DemoTable606(FirstName) VALUES('John'), ('Robert'), ('Chris'), ('David');

EXPLAIN আউটপুট বিশ্লেষণ:

১. ORDER BY Id (প্রাইমারি কি):

EXPLAIN SELECT * FROM DemoTable606 ORDER BY Id;

ফলাফল: type=index, key=PRIMARY, Extra=NULL → ইনডেক্স ব্যবহার করে সর্ট হয়েছে, ফাইলসর্ট লাগেনি।

২. ORDER BY Id, FirstName:

EXPLAIN SELECT * FROM DemoTable606 ORDER BY Id, FirstName;

ফলাফল: type=ALL, key=NULL, Extra="Using filesort" → কম্পোজিট ইনডেক্স নেই, ফাইলসর্ট ব্যবহার হয়েছে।

৩. ORDER BY Id, RAND():

EXPLAIN SELECT * FROM DemoTable606 ORDER BY Id, RAND();

ফলাফল: type=ALL, Extra="Using temporary; Using filesort" → RAND() ইনডেক্স ব্যবহার করতে দেয় না, টেম্পরারি টেবিল + ফাইলসর্ট।

নথি: PRIMARY KEY=(Id) থাকলে ORDER BY Id ইনডেক্স ব্যবহার করে। অতিরিক্ত কলাম বা RAND() যোগ করলে ফাইলসর্ট হয়। কম্পোজিট ইনডেক্স (Id, FirstName) বানালে ২ নম্বর কেসে ফাইলসর্ট এড়ানো যাবে।

  1. MySQL-এ আন্ডারস্কোর (_) সম্বলিত স্ট্রিং ORDER BY করা (LIKE প্যাটার্ন)

  2. MySQL-এ নির্দিষ্ট ক্রমে (SET ORDER) সিলেক্ট করার পদ্ধতি

  3. MySQL-এ ORDER BY CASE WHEN ব্যবহার করে কাস্টম সর্টিং করা

  4. MySQL-এ NULL মানযুক্ত কলামকে গুন করার সমস্যা সমাধান (COALESCE)