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

MySQL কোয়েরি কতটুকু সময় নিচ্ছে তা কনসোলে প্রিন্ট না করেও কীভাবে চেক করবেন?

এটি চেক করার জন্য প্রোফাইলিং ইনফরমেশন প্রয়োজন যা বর্তমান সেশনে এক্সিকিউট হওয়া স্টেটমেন্টগুলোর রিসোর্স ইউজেজ ইঙ্গিত করে। প্রোফাইলিং ইনফরমেশন SHOW PROFILE এবং SHOW PROFILES স্টেটমেন্ট দিয়ে পাওয়া যায়।

এই স্টেটমেন্টগুলো চালানোর আগে, প্রোফাইলিং সেশন ভেরিয়েবল ১ সেট করতে হবে:

mysql> SET PROFILING = 1;
Query OK, 0 rows affected (0.00 sec)

এখন SHOW PROFILES স্টেটমেন্ট চালালে সার্ভারে পাঠানো সাম্প্রতিক স্টেটমেন্টগুলোর তালিকা ডুরেশন এবং কোয়েরি আইডিসহ দেখাবে।

mysql> SHOW PROFILES;
+----------+------------+--------------------------------------+
| Query_ID | Duration   | Query                                |
+----------+------------+--------------------------------------+
| 1        | 0.01602200 | DROP TABLE IF EXISTS t1              |
| 2        | 0.57223450 | CREATE TABLE t1(id INT)              |
| 3        | 0.00015425 | SHOW PROFILE FOR QUERY 1             |
| 4        | 0.22945050 | CREATE TABLE e1(id INT)              |
| 5        | 0.09977025 | INSERT INTO e1(id) VALUES(3),(4),(5) |
+----------+------------+--------------------------------------+
5 rows in set (0.00 sec)

এখন যদি আমরা কোনো নির্দিষ্ট কোয়েরির ডুরেশন চেক করতে চাই, তবে SHOW PROFILE FOR QUERY query_no স্টেটমেন্ট চালাতে পারি। উদাহরণস্বরূপ, query_id = 5 এর জন্য স্টেটমেন্ট চালালে আউটপুট হবে:

mysql> SHOW PROFILE FOR QUERY 5;
+------------------------------+--------------+
| Status                       | Duration     |
+------------------------------+--------------+
| starting                     | 0.000138     |
| checking permissions         | 0.000024     |
| Opening tables               | 0.000057     |
| System lock                  | 0.035186     |
| init                         | 0.000035     |
| update                       | 0.021484     |
| Waiting for query cache lock | 0.000021     |
| update                       | 0.000005     |
| end                          | 0.000024     |
| query end                    | 0.042700     |
| closing tables               | 0.000017     |
| freeing items                | 0.000076     |
| logging slow query           | 0.000003     |
| cleaning up                  | 0.000002     |
+------------------------------+--------------+
14 rows in set (0.00 sec)
  1. MySQL টার্মিনাল থেকে কোয়েরি চালাতে ফলাফল প্রিন্ট না করা

  2. MySQL-এ NOW() এবং INTERVAL ব্যবহার করে সময়ের পার্থক্য বের করুন

  3. MySQL-এ নির্দিষ্ট টেবিলের ডিস্ক স্পেস ব্যবহার জানা

  4. MySQL-এ SELECT ক্যোয়ারির ফলাফল অর্ডার করা