2017-03-18 4 views
2

Disons que j'ai une table mysql définie comme ceci:MySQL Select et limite la complexité de calcul

create table test_table(
id int(10) unsigned auto_increment primary key 
/*, other attributes...*/ 
); 

Et étant donné que la table que je veux aller chercher le dernier enregistrement de celui-ci comme ceci:

select * from test_table order by id desc limit 1; 

Il fonctionne, mais il se sent un peu sommaire, quelle est sa complexité? Est-il O (log (n)) depuis « limite » et « ordre par » sont exécutées après la sélection?

Y at-il une meilleure façon de sélectionner le dernier enregistrement d'une table incrémentée automatique?

Répondre

3

Vous pouvez obtenir la sortie souhaitée avec cette approche.

SELECT * FROM test_table where id=(select max(id) from test_table); 

Espérons que cela vous aidera.

+0

Cela semble fonctionner, mais quelle est la complexité de la fonction max()? -t-il pas itérer tous les index pour trouver le plus haut? Merci pour votre réponse! –