Version complète: sur le forum Webmaster Hub : creation d'un index par mon hébergeur ?
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
baycris
Je viens de recevoir cet e-mail de mon hébérgeur...

Il est bien gentil mais je ne comprend pas ...
ourriez vous me l'expliquer ?

CODE
Nous vous envoyons cet email pour vous prevenir de l'ajout d'un index, pour
ameliorer les performances de vos requetes.
Sans index, pour chaque requete de ce style, environ 500000 enregistrements
sont parcourus.

mysql> explain select id_url from rs_log_url2 where
mysql> (url='http://www.mondomaine/recette-2043-Corniottes.html'
mysql> AND robot = '10') AND date = '2006-03-21';
+----+-------------+-------------+------+---------------+------+---------+--
----+--------+-------------+
| id | select_type | table       | type | possible_keys | key  | key_len |
ref  | rows   | Extra       |
+----+-------------+-------------+------+---------------+------+---------+--
----+--------+-------------+
|  1 | SIMPLE      | rs_log_url2 | ALL  | NULL          | NULL |    NULL |
NULL | 489224 | Using where |
+----+-------------+-------------+------+---------------+------+---------+--
----+--------+-------------+

mysql> alter table rs_log_url2 add index `i_url_robot_date` (`url`,
mysql> `robot`, `date`);

mysql> explain select id_url from rs_log_url2 where
mysql> (url='http://www.mondomaine.com/recette-2043-Corniottes.html'
mysql> AND robot = '10') AND date = '2006-03-21';
+----+-------------+-------------+------+------------------+----------------
--+---------+-------------------+------+-------------+
| id | select_type | table       | type | possible_keys    | key
| key_len | ref               | rows | Extra       |
+----+-------------+-------------+------+------------------+----------------
--+---------+-------------------+------+-------------+
|  1 | SIMPLE      | rs_log_url2 | ref  | i_url_robot_date |
i_url_robot_date |     265 | const,const,const |    1 | Using where |
+----+-------------+-------------+------+------------------+----------------
--+---------+-------------------+------+-------------+




Je vois bien qu'il veulent limiter les requetes mais lesquels ? cela va til jouer sur les robots google... et autres ?
Par avance merci .
Cris
Théo B.
Un index SQL, si mes connaissances sont bonnes, c'est comme un index de libre.
Imagine que tu cherche quelque chose dans un livre. Soit tu parcoures les 50000 pages du livres pour trouver ton mot, soit tu vas à l'index, ou tout ton site est "résumé".

Aisni, un index SQL te permet un gain de temps, mais les résultats des requetes seront les memes. Cela ne jouera donc pas sur Google.

Ps : cela a un effet sur toutes les requetes de la table.
captain_torche
Un index sur un champ de table, permet une recherche plus rapide sur ce champ.
Il est conseillé d'en mettre sur tous les champs susceptibles d'être l'objet d'une recherche.

Ton hébergeur a donc juste amélioré les performances des requêtes SQL sur ton site.
Mamat
Tu peux voir le résultat avec ou sans index en faisant un requete typique de ton site et en la préfixant par EXPLAIN tu sauras alors le nombre de requete et la rapidité de ton SELECT par exemple.
petit-ourson
Hum ça fait mal la première condition dans ton 'where'. Je me souviens d'un seul coup pourquoi je me casse toujours la tête à faire apparaitre un id dans l'url de mes pages ;o)
baycris
merci à tous pour vos réponses !
en fait j'ai enfin compris ce qu'il avait voulu me dir...
bref pour info c'était le module robotsstats machin chose qui cumule les url crawlés ......
ce qui bien sur crée des tables de fous.
bref j'ai fait un peu de menage happy.gif
merci encore Cris.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.