Laquelle de ces 2 requêtes est la plus rapide ?
Posté : 09 déc. 2008, 14:10
Bonjour,
pour récupérer une valeur dans ma base de données, j'ai à priori 2 choix :
Mais j'aimerai savoir laquelle de ces deux requêtes est la plus rapide. Je pencherai pour celle avec une LIMIT, puisqu'elle ne scan qu'une seule entrée, mais je me trompes peut-etre.
Voila la structure de la table :
pour récupérer une valeur dans ma base de données, j'ai à priori 2 choix :
$annonce_id = getValueFromQuery(sprintf("SELECT annonce_id FROM ".$cfg_prefixe."annonces WHERE annonce_user_id = '%s' ORDER BY annonce_datetime DESC LIMIT 1",
mysql_real_escape_string($user_id)));
ou $annonce_id = getValueFromQuery(sprintf("SELECT MAX(annonce_id) as annonce_id FROM ".$cfg_prefixe."annonces WHERE annonce_user_id = '%s'",
mysql_real_escape_string($user_id)));
Ces deux requêtes devraient théoriquement me retourner la même chose, puisque le champ annonce_datetime est rempli via un date('Y-m-d H:i:s') au moment de l'insertion.Mais j'aimerai savoir laquelle de ces deux requêtes est la plus rapide. Je pencherai pour celle avec une LIMIT, puisqu'elle ne scan qu'une seule entrée, mais je me trompes peut-etre.
Voila la structure de la table :
CREATE TABLE `annonces` (
`annonce_id` int(11) NOT NULL auto_increment,
`annonce_user_id` int(11) NOT NULL,
`annonce_datetime` datetime NOT NULL,
`annonce_statut` tinyint(4) NOT NULL,
`annonce_position` tinyint(4) NOT NULL,
`annonce_views` int(11) NOT NULL,
`annonce_type` enum('vente','location') NOT NULL,
`annonce_type_bien` enum('appartement','maison') NOT NULL,
`annonce_address` text NOT NULL,
`annonce_zipcode` varchar(10) NOT NULL,
`annonce_city` text NOT NULL,
`annonce_country` int(11) NOT NULL,
`annonce_surface` float NOT NULL,
`annonce_rooms` int(11) NOT NULL,
`annonce_price` float NOT NULL,
`annonce_description` text NOT NULL,
`annonce_old_price` float NOT NULL,
PRIMARY KEY (`annonce_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;