Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ฉันจะตรวจสอบเวลาที่ใช้คิวรี MySQL โดยไม่ต้องพิมพ์บนคอนโซลได้อย่างไร


ในการตรวจสอบนี้ เราจำเป็นต้องมีข้อมูลโปรไฟล์ซึ่งระบุการใช้ทรัพยากรสำหรับคำสั่งที่ดำเนินการในระหว่างเซสชันปัจจุบัน ข้อมูลโปรไฟล์สามารถรับได้โดย SHOW PROFILE และ แสดงโปรไฟล์ คำสั่ง

ก่อนเรียกใช้คำสั่งเหล่านี้ ตัวแปรเซสชันการทำโปรไฟล์ต้องตั้งค่าเป็น 1 ดังนี้ −

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 query1              |
| 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 สำหรับ 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)