Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL - Nhận Chi phí Truy vấn Cuối cùng Sử dụng TÌNH TRẠNG HIỂN THỊ NHƯ ‘Last_Query_Cost’

Trong buổi phát sóng trên web gần đây mà tôi đã làm cho Idera, tôi rất vui khi được hiển thị khá nhiều thủ thuật và mẹo mới. Một trong những mẹo được đánh giá cao nhất là về cách lấy Chi phí truy vấn cuối cùng trong MySQL bằng cách sử dụng lệnh SHOW STATUS LIKE ‘Last_Query_Cost’. Hãy cùng chúng tôi tìm hiểu về nó ngay hôm nay.

Nếu bạn đang sử dụng SQL Server, bạn rất dễ dàng nhận được chi phí của truy vấn bằng cách sử dụng kế hoạch thực thi đồ họa, kế hoạch thực thi XL hoặc sử dụng kế hoạch cache DMV. Tuy nhiên, nếu bạn đang sử dụng MySQL, rất khó để tìm ra chi phí truy vấn cuối cùng. Tôi thường thấy trong quá trình Kiểm tra tình trạng hiệu suất cơ sở dữ liệu toàn diện rằng các DBA muốn điều chỉnh các truy vấn MySQL của họ nhưng họ không biết cách đo lường hiệu suất của các truy vấn của họ.

Nếu bạn đang sử dụng MySQL hoặc MariaDB, bạn luôn có thể đo lường hiệu suất truy vấn của mình về chi phí bằng cách chạy lệnh sau.

Hiển thị trạng thái

SHOW STATUS LIKE 'Last_Query_Cost';

Đây là tài liệu chính thức cho lệnh. Tổng chi phí của truy vấn được biên dịch cuối cùng do trình tối ưu hóa truy vấn tính toán. Điều này hữu ích để so sánh chi phí của các kế hoạch truy vấn khác nhau cho cùng một truy vấn. Giá trị mặc định là 0 có nghĩa là chưa có truy vấn nào được biên dịch. Giá trị mặc định là 0. Last_query_cost có phạm vi phiên.

Hãy để chúng tôi xem một ví dụ đơn giản về cách nó hoạt động với sự trợ giúp của cơ sở dữ liệu mẫu Sakila dành cho MySQL .

USE sakila;
SELECT *
FROM film f
INNER JOIN film_actor fa ON f.film_id = fa.film_id
INNER JOIN film_category fc ON fc.film_id = fa.film_id
WHERE f.film_id = 10;
SHOW STATUS LIKE 'Last_Query_Cost';

Đây là kết quả bạn nhận được khi chạy truy vấn trên:

Với sự trợ giúp của trạng thái, chúng ta có thể biết chi phí liên quan đến việc chạy truy vấn là bao nhiêu. Nếu bạn có bất kỳ đề xuất nào khác, hãy cho tôi biết. Ngoài ra, nếu bạn muốn Giám sát trong thời gian thực để có hành động khắc phục và giải quyết vấn đề, bạn nên xem xét Trình quản lý chẩn đoán SQL cho MySQL và MariaDB .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql chọn tổng nhóm theo ngày

  2. Tập lệnh kiểm tra tình trạng sao chép MySQL

  3. Cách làm việc với truy vấn con MySQL

  4. Lấy id của hàng đã chèn bằng C #

  5. Làm cách nào để lấy tất cả các giá trị trong một cột bằng PHP?