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

MySQL EXPLAIN কীওয়ার্ড: কোয়েরি এক্সিকিউট করে নাকি শুধু ব্যাখ্যা করে?

উত্তর

EXPLAIN কোয়েরি এক্সিকিউট করে না। এটি কোয়েরি এক্সিকিউশন প্ল্যান (Query Execution Plan) দেখায় — অর্থাৎ MySQL কীভাবে কোয়েরি রান করবে তা প্রিডিক্ট করে বলে।

উদাহরণ

mysql> create table DemoTable1375 (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> FirstName varchar(20),
    -> INDEX FIRST_INDEX(FirstName)
    -> );
mysql> insert into DemoTable1375(FirstName) values('Chris'),('Bob'),('Sam'),('David');

EXPLAIN আউটপুট

mysql> explain select * from DemoTable1375;
+----+-------------+---------------+------------+-------+---------------+-------------+---------+------+------+----------+-------------+
| id | select_type | table         | partitions | type  | possible_keys | key         | key_len | ref  | rows | filtered | Extra       |
+----+-------------+---------------+------------+-------+---------------+-------------+---------+------+------+----------+-------------+
| 1  | SIMPLE      | DemoTable1375 | NULL       | index | NULL          | FIRST_INDEX | 63      | NULL | 4    | 100.00   | Using index |
+----+-------------+---------------+------------+-------+---------------+-------------+---------+------+------+----------+-------------+

গুরুত্বপূর্ণ কলামসমূহ

  • type — অ্যাক্সেস টাইপ (ALL, index, range, ref, eq_ref, const, system, NULL) — 'ALL' মানে ফুল টেবিল স্ক্যান
  • key — ব্যবহার করা ইনডেক্স
  • rows — আনুমানিক পরীক্ষিত সারি সংখ্যা
  • Extra — 'Using index', 'Using where', 'Using temporary', 'Using filesort' ইত্যাদি

EXPLAIN কোয়েরি অপ্টিমাইজেশনের জন্য অপরিহার্য টুল।

  1. MySQL-এ IN() অপারেটর ব্যবহার করে অ্যারে এলিমেন্ট ম্যাচ করা

  2. MySQL EXPLAIN কিওয়ার্ড দিয়ে তথ্য আনা

  3. MySQL-এ সাবকোয়ারি এবং GROUP BY ব্যবহার করে সর্বোচ্চ কমিউলেটিভ মান বের করা

  4. MySQL-এ রিজার্ভড কীওয়ার্ড (groups) দিয়ে টেবিল তৈরি করার সমস্যা ও সমাধান