Jamais vu cela auparavant. En exécutant la même requête, 1 force un index. Sans l'index, les résultats sont incorrects (dans le mauvais ordre), avec l'index les résultats sont dans le bon ordre. Le seul problème avec l'utilisation de l'index est que c'est plus lent pour une raison quelconque. Index est comment_id et user_idavec index, renvoie un résultat différent
sans index:
SELECT DISTINCT topic_id FROM comments
WHERE user_id=9384
AND (status = 1 or status = 0)
ORDER BY comment_id DESC LIMIT 15
avec index:
SELECT DISTINCT topic_id FROM comments force index(index_comment_user)
WHERE user_id=9384
AND (status = 1 or status = 0)
ORDER BY comment_id DESC LIMIT 15
Toutes les idées? Je veux vraiment obtenir l'ordre correct sans ralentir la requête. Je l'aurais fait à travers un index aurait fait cela.
Voici la structure SQL.
CREATE TABLE `db`.`comments` (
`comment_id` int(10) unsigned NOT NULL auto_increment,
`old_comments_id` mediumint(8) unsigned default NULL,
`user_id` mediumint(8) unsigned default NULL,
`content` text character set latin1,
`status` tinyint(3) unsigned default NULL,
`added_date` datetime default NULL,
`category_id` tinyint(3) unsigned default NULL,
`helpful` tinyint(3) unsigned default NULL,
`modified_date` datetime default NULL,
`topic_id` mediumint(8) unsigned default NULL,
`last_mod_user_id` mediumint(8) unsigned default NULL,
PRIMARY KEY USING BTREE (`comment_id`),
KEY `Index_user_id` (`user_id`),
KEY `Index_added_date` (`added_date`),
KEY `Index_comments_status` USING BTREE (`status`),
KEY `Index_user_activity` USING BTREE (`comment_id`,`user_id`),
KEY `Index_user_activity2` USING BTREE (`user_id`,`topic_id`),
KEY `Index_question_id` USING BTREE (`topic_id`,`status`),
KEY `Index_user_activity3` (`user_id`,`status`,`topic_id`,`comment_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2040237 DEFAULT CHARSET=utf8;
est-mysql pointilleux sur l'ordre des colonnes dans un indice - à savoir si vous créez un index sur user_id , column_id à la place serait-ce utile? – Rup
Veuillez également afficher la définition exacte de la table. – Tomalak
structure de table sql ajoutée – David