Câu trả lời:
COUNT(1)
, đây sẽ là cách nhanh nhất.
Bởi vì không ai đề cập đến nó:
show table status;
liệt kê tất cả các bảng cùng với một số thông tin bổ sung, bao gồm các hàng ước tính cho mỗi bảng. Đây là những gì phpMyAdmin đang sử dụng cho trang cơ sở dữ liệu của nó.
Thông tin này có sẵn trong MySQL 4, có lẽ trong MySQL 3.23 cũng vậy - cơ sở dữ liệu lược đồ thông tin trước đó trong thời gian dài.
Vì đã bỏ phiếu, tôi muốn làm rõ rằng số lượng hiển thị được ước tính cho InnoDB và TokuDB và nó hoàn toàn chính xác cho các công cụ lưu trữ MyISAM và Aria (Maria).
Theo tài liệu :
Số lượng hàng. Một số công cụ lưu trữ, như MyISAM, lưu trữ số lượng chính xác. Đối với các công cụ lưu trữ khác, chẳng hạn như InnoDB, giá trị này là một xấp xỉ và có thể thay đổi từ giá trị thực tế từ 40% đến 50%. Trong những trường hợp như vậy, hãy sử dụng CHỌN COUNT (*) để có được số đếm chính xác.
Đây cũng là cách nhanh nhất để xem số hàng trên MySQL, bởi vì truy vấn như:
select count(*) from table;
Thực hiện quét toàn bộ bảng những gì có thể là hoạt động rất tốn kém có thể mất nhiều giờ trên máy chủ tải lớn. Nó cũng tăng I / O đĩa.
Hoạt động tương tự có thể chặn bảng để chèn và cập nhật - điều này chỉ xảy ra trên các công cụ lưu trữ kỳ lạ.
InnoDB và TokuDB đều ổn với khóa bảng, nhưng cần quét toàn bộ bảng.
Chúng tôi có một cách khác để tìm ra số lượng hàng trong một bảng mà không cần chạy select
truy vấn trên bảng đó.
Mỗi phiên bản MySQL có cơ sở dữ liệu information_schema. Nếu bạn chạy truy vấn sau, nó sẽ cung cấp chi tiết đầy đủ về bảng bao gồm số lượng hàng gần đúng trong bảng đó.
select * from information_schema.TABLES where table_name = 'table_name'\G
Đơn giản:
SELECT COUNT(*) FROM `tablename`
select count(*) from YourTable
Nếu bạn có một số trường trong bảng và bảng của bạn rất lớn, tốt hơn là KHÔNG SỬ DỤNG *
vì nó tải tất cả các trường vào bộ nhớ và sử dụng các mục sau sẽ có hiệu suất tốt hơn
SELECT COUNT(1) FROM fooTable;
Như Santosh đã đề cập , tôi nghĩ truy vấn này nhanh chóng phù hợp, trong khi không truy vấn tất cả các bảng.
Để trả về kết quả số nguyên của số lượng bản ghi dữ liệu, cho một tablename cụ thể trong cơ sở dữ liệu cụ thể :
select TABLE_ROWS from information_schema.TABLES where TABLE_SCHEMA = 'database'
AND table_name='tablename';
count(*)
với nhận thức về hiệu suất
$sql="SELECT count(*) as toplam FROM wp_postmeta WHERE meta_key='ICERIK' AND post_id=".$id;
$total = 0;
$sqls = mysql_query($sql,$conn);
if ( $sqls ) {
$total = mysql_result($sqls, 0);
};
echo "Total:".$total;`
tablename