65 votes

La manière la plus efficace d'obtenir le nombre de lignes de tableau

Actuellement, j'ai une base de données avec plus de 6 millions de lignes et qui continue de croître. Je fais actuellement SELECT COUNT(id) FROM table; pour afficher le nombre à mes utilisateurs, mais la base de données devient volumineuse et je n'ai pas besoin de conserver toutes ces lignes sauf pour pouvoir afficher le nombre. Existe-t-il un moyen de sélectionner la valeur auto-incrémentée à afficher afin que je puisse effacer la plupart des lignes de la base de données? L'utilisation de LAST_INSERT_ID() ne semble pas fonctionner.

0voto

user396483 Points 697

Aucune de ces réponses ne semble tout à fait juste. Je les ai toutes essayées. Voici mes résultats.

Envoi de la requête: SELECT count(*) FROM daximation
91
Envoi de la requête: SELECT Auto_increment FROM information_schema.tables WHERE table_name='daximation'
96
Envoi de la requête: SHOW TABLE STATUS LIKE 'daximation'
98
Envoi de la requête: SELECT id FROM daximation ORDER BY id DESC LIMIT 1
97

voici la capture d'écran: https://www.screencast.com/t/s8c3trYU

Voici mon code PHP:

$query = "SELECT count(*) FROM daximation"; 
$result = sendquery($query);
$row = mysqli_fetch_row($result);
debugprint( $row[0]);

$query = "SELECT Auto_increment FROM information_schema.tables WHERE table_name='daximation'"; 
$result = sendquery($query);
$row = mysqli_fetch_row($result);
debugprint( $row[0]);

$query = "SHOW TABLE STATUS LIKE 'daximation'"; 
$result = sendquery($query);
$row = mysqli_fetch_row($result);
debugprint( $row[10]);

$query = "SELECT id FROM daximation ORDER BY id DESC LIMIT 1"; 
$result = sendquery($query);
$row = mysqli_fetch_row($result);
debugprint( $row[0]);

-1voto

lisovaccaro Points 1331

Ne pourriez-vous pas simplement créer un enregistrement dans une table séparée ou autre avec une colonne appelée Utilisateurs et la METTRE À JOUR avec le dernier identifiant inséré lors de l'inscription de l'utilisateur?

Ensuite, vous n'auriez qu'à vérifier ce champ avec une requête simple.

Cela pourrait être rudimentaire mais cela fonctionnerait parfaitement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X