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

Tại sao các hàng trả về bằng giải thích không bằng count ()?

Nó hiển thị bao nhiêu hàng mà nó đã chạy qua để nhận được kết quả của bạn.

Lý do cho dữ liệu sai là EXPLAIN không chính xác, nó đưa ra các phỏng đoán về dữ liệu của bạn dựa trên thông tin được lưu trữ về bảng của bạn.

Đây là thông tin rất hữu ích, chẳng hạn như khi thực hiện JOINS trên nhiều bảng và bạn muốn đảm bảo rằng mình không chạy qua toàn bộ bảng đã kết hợp để tìm một hàng thông tin cho mỗi hàng mà bạn có.

Đây là bài kiểm tra trên bảng 608 hàng.

SELECT COUNT(id) FROM table WHERE user_id = 1

Kết quả:

COUNT(id)
512

Và đây là lời giải thích

EXPLAIN SELECT COUNT(id) FROM table WHERE user_id = 1

Kết quả:

id  rows
1   608


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo một trang web với MySQL

  2. Cách tối ưu hóa hiệu suất COUNT (*) trên InnoDB bằng cách sử dụng chỉ mục

  3. MySQL COALESCE () Giải thích

  4. Cách hoạt động của hàm POSITION () trong MySQL

  5. MySQL có thể thay thế nhiều ký tự không?