J'ai une table très simple avec deux colonnes, mais avec 4,5M lignes.Table MySQL simple exécutant des requêtes lentes
CREATE TABLE `content_link` (
`category_id` mediumint(8) unsigned NOT NULL,
`content_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`content_id`,`category_id`),
KEY `content_id` (`content_id`,`category_id`)
) ENGINE=MyISAM;
Quand je lance une requête simple comme:
SELECT
*
FROM
content_link
WHERE
category_id = '11';
mysql pointes de la CPU et prend 2-5 secondes avant de revenir sur 10 lignes. Les données sont réparties très uniformément sur la table et j'accède aux champs indexés (j'ai également analysé/optimisé la table et je ne change jamais le contenu de la table), alors quelle raison y a-t-il pour que la requête dure? Edit: Il me semblait que Navicat me mentait et que ma clé primaire n'était pas vraiment dans le bon ordre car elle m'indiquait la table.
que voulez-vous dire par une répartition uniforme? Le résultat est-il correct? Avez-vous profilé les E/S? Y a-t-il une latence matérielle? – Richard
En répartissant uniformément je voulais dire que je n'ai pas les ID regroupés, donc un index mysql BTREE ne devrait pas avoir de problèmes avec cela. – Ian