Respuestas:
SELECT COUNT(*) FROM fooTable;
contará el número de filas en la tabla.
Ver el manual de referencia .
COUNT(1)
, esta será la forma más rápida.
Porque nadie lo mencionó:
show table status;
enumera todas las tablas junto con información adicional, incluidas las filas estimadas para cada tabla. Esto es lo que phpMyAdmin está utilizando para su página de base de datos.
Esta información está disponible en MySQL 4, probablemente también en MySQL 3.23, base de datos de esquemas de información previa de mucho tiempo.
Debido a que hubo un voto negativo, quiero aclarar que el número que se muestra se estima para InnoDB y TokuDB y es absolutamente correcto para los motores de almacenamiento MyISAM y Aria (Maria).
Por la documentación :
El número de filas. Algunos motores de almacenamiento, como MyISAM, almacenan el recuento exacto. Para otros motores de almacenamiento, como InnoDB, este valor es una aproximación y puede variar del valor real hasta en un 40% a 50%. En tales casos, use SELECT COUNT (*) para obtener un recuento preciso.
Esta también es la forma más rápida de ver el recuento de filas en MySQL, porque consultas como:
select count(*) from table;
Hacer un análisis completo de la tabla puede ser una operación muy costosa que puede llevar horas en un servidor grande de alta carga. También aumenta la E / S de disco.
La misma operación podría bloquear la tabla para inserciones y actualizaciones; esto ocurre solo en motores de almacenamiento exóticos.
InnoDB y TokuDB están bien con el bloqueo de la tabla, pero necesitan un escaneo completo de la tabla.
Tenemos otra forma de averiguar el número de filas en una tabla sin ejecutar una select
consulta en esa tabla.
Cada instancia de MySQL tiene una base de datos information_schema. Si ejecuta la siguiente consulta, proporcionará detalles completos sobre la tabla, incluido el número aproximado de filas en esa tabla.
select * from information_schema.TABLES where table_name = 'table_name'\G
Simplemente:
SELECT COUNT(*) FROM `tablename`
select count(*) from YourTable
Si tiene varios campos en su tabla y su tabla es enorme, es mejor NO UTILIZAR *
porque carga todos los campos en la memoria y usar lo siguiente tendrá un mejor rendimiento
SELECT COUNT(1) FROM fooTable;
Como mencionó Santosh , creo que esta consulta es adecuadamente rápida, aunque no consulta toda la tabla.
Para devolver el resultado entero del número de registros de datos, para un nombre de tabla específico en una base de datos particular :
select TABLE_ROWS from information_schema.TABLES where TABLE_SCHEMA = 'database'
AND table_name='tablename';
count(*)
con conocimiento del rendimiento
$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;`
Si tiene una clave principal o una clave / índice único, el método más rápido posible (probado con tablas de 4 millones de filas)
SHOW INDEXES FROM "database.tablename" WHERE Key_Name=\"PRIMARY\"
y luego obtener el campo de cardinalidad (es casi instantáneo)
Tiempos donde de 0.4s a 0.0001ms
tablename