Khi tôi chạy một truy vấn, tôi không muốn nó in ra bàn điều khiển. Tôi chỉ muốn xem thời gian.Cách kiểm tra xem truy vấn MySQL đang mất bao lâu?
9166 rows in set (0.90 sec)
Đó là tất cả những gì tôi muốn xem, thay vì in mọi thứ.
Khi tôi chạy một truy vấn, tôi không muốn nó in ra bàn điều khiển. Tôi chỉ muốn xem thời gian.Cách kiểm tra xem truy vấn MySQL đang mất bao lâu?
9166 rows in set (0.90 sec)
Đó là tất cả những gì tôi muốn xem, thay vì in mọi thứ.
Hãy thử ví dụ này đơn giản
mysql> set profiling=1;
mysql> select count(*) from comment;
mysql> select count(*) from message;
mysql> show profiles;
+----------+------------+------------------------------+
| Query_ID | Duration | Query |
+----------+------------+------------------------------+
| 1 | 0.00012700 | select count(*) from comment |
| 2 | 0.00014200 | select count(*) from message |
+----------+------------+------------------------------+
2 rows in set (0.00 sec)
Bạn có thể viết truy vấn của bạn bên trong sub-query với COUNT
để làm các trick như:
SELECT COUNT(1)
FROM (SELECT * FROM your_table WHERE ...) a
Nó có thể làm chậm truy vấn của bạn một chút, vì nó đang làm COUNT
cũng nhưng tôi nghĩ không đáng kể của nó.
Để đo hiệu suất truy vấn bạn có thể bật PROFILES
trong MySQL như:
SET profiling = 1;
Để biết thêm chi tiết về PROFILES
thấy here.
$starttime = microtime(true);
//Do your query and stuff here
$endtime = microtime(true);
$duration = $endtime - $starttime; //calculates total time taken
Nó nói "ERROR 1248 (42000): Mỗi bảng có nguồn gốc phải có bí danh riêng của mình"? – TIMEX
cung cấp bất kỳ bí danh nào cho bảng có nguồn gốc khi tôi đã đặt 'a' ở cuối – Omesh