Manque un index sur spip_urls ?

Nicolas Dorigny <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Message-ID <[email protected]>
Salut,

suite à une analyse de l'activité Mysql sur un serveur, un hébergeur me 
remonte que les requêtes du type SELECT id_objet, type, date, url FROM 
spip_urls WHERE url=? sont les plus consommatrices en temps.

J'ai vérifié, et effectivement, la requête ne tape sur aucun index et 
cherche sur tous les enregistrements :

EXPLAIN SELECT id_objet, TYPE, DATE, url FROM spip_urls WHERE url='yo';

+------+-------------+-----------+------+---------------+------+---------+------+-------+-------------+

| id   | select_type | table     | type | possible_keys | key  | key_len | ref  | rows  | Extra       |

+------+-------------+-----------+------+---------------+------+---------+------+-------+-------------+

|    1 | SIMPLE      | spip_urls | ALL  | NULL          | NULL | NULL    | NULL | 29074 | Using where |

+------+-------------+-----------+------+---------------+------+---------+------+-------+-------------+


En ajoutant un index sur la colonne url, ça semble tout de suite mieux :

ALTER TABLE `spip_urls` ADD INDEX (`url`);
EXPLAIN SELECT id_objet, TYPE, DATE, url FROM spip_urls WHERE url='yo';

+------+-------------+-----------+------+---------------+------+---------+-------+------+-----------------------+

| id   | select_type | table     | type | possible_keys | key  | key_len | ref   | rows | Extra                 |

+------+-------------+-----------+------+---------------+------+---------+-------+------+-----------------------+

|    1 | SIMPLE      | spip_urls | ref  | url           | url  | 767     | const |    1 | Using index condition |

+------+-------------+-----------+------+---------------+------+---------+-------+------+-----------------------+


Sans l'index, la requête prend entre 10 et 13 ms sur mon MariaDB local, 
avec l'index c'est moins de 0.5 ms.

Vous en pensez quoi ?

-- 
nicod_
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.