Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách đơn giản nhất đếm số hàng trong bảng MySQL: COUNT(*)

Hàm tổng hợp COUNT(*) trả về số lượng hàng trong bảng (kể cả hàng có NULL). Đây là cách tiêu chuẩn, đơn giản và tối ưu nhất.

Ví dụ minh họa

Tạo bảng và chèn 4 hàng:

CREATE TABLE DemoTable1575 (FirstName VARCHAR(20));
INSERT INTO DemoTable1575 VALUES ('Chris'), ('Bob'), ('Adam'), ('Robert');

Đếm số hàng:

SELECT COUNT(*) FROM DemoTable1575;

Kết quả

count(*)
4

COUNT(*) vs COUNT(cot) vs COUNT(1)

Cú phápĐếm gìHiệu năng
COUNT(*)Tất cả hàngNhanh nhất (optimizer tối ưu)
COUNT(cot)Hàng có cot ≠ NULLChậm hơn (phải check NULL)
COUNT(1)Tương đương COUNT(*)Tương đương

Khuyên dùng: COUNT(*) — rõ ý nghĩa, tối ưu nhất.

Đếm có điều kiện

SELECT COUNT(*) FROM DemoTable1575 WHERE FirstName LIKE 'C%'; -- 1 (Chris)

Đếm theo nhóm

SELECT department, COUNT(*) FROM employees GROUP BY department;

⚠️ Lưu ý hiệu năng bảng lớn (InnoDB)

  • COUNT(*) trên bảng InnoDB lớn có thể chậm do MVCC (phải quét index).
  • Giải pháp: Bảng đếm riêng (counter table), trigger cập nhật, hoặc information_schema.tables.table_rows (ước lượng).
  • MySQL 8.0.13+: SELECT COUNT(*) FROM t dùng parallel scan nếu innodb_parallel_read_threads > 0.