Thay vì SELECT * hoặc COUNT(*), dùng COUNT(1) hoặc EXISTS để kiểm tra tồn tại hàng nhanh nhất.
Cú pháp khuyến nghị
SELECT COUNT(1) FROM tenBang WHERE dieuKien;
Ví dụ
Tạo bảng và chèn 5 bản ghi:
mysql> create table DemoTable (
Id int,
FirstName varchar(20)
);
Query OK, 0 rows affected (0.73 sec)Kiểm tra tồn tại Id = 130:
mysql> select count(1) from DemoTable where Id=130;
+----------+ | count(1) | +----------+ | 1 | +----------+ 1 row in set (0.00 sec)
Kết quả 1 = tồn tại, 0 = không tồn tại.
Phương án thay thế: EXISTS
SELECT EXISTS(SELECT 1 FROM tenBang WHERE dieuKien);
Trả về 1 (true) hoặc 0 (false). EXISTS thường nhanh hơn vì dừng lại ngay khi tìm thấy hàng đầu tiên (short-circuit), trong khi COUNT phải quét toàn bộ index phù hợp.
Khuyên dùng: EXISTS cho kiểm tra boolean, COUNT(1) khi cần biết số lượng chính xác.