Page 1 sur 1
Comment indexer ?
Posté : 17 janv. 2008, 20:37
par code3
Bonjour,:)
En faite j'ai deux tables dans ma base, Thread(idThread,topic,posts) et Post(idPost,idThread,text).
J'ai appris récemment que les index facilite la recherche dans les tables.
Comment est ce que je peut indexer ma base ou plutôt mes tables
Merci
Posté : 17 janv. 2008, 21:13
par AB
Tu vas dans phpmyadmin et tu cliques pour indexer le(s) champ(s) sur le(s)quel(s) tu fait tes recherches
Posté : 17 janv. 2008, 21:27
par code3
Merci AB pour ta réponse,
En faite j'ai vu ça sur phpMyAdmin, mais je voulais savoir quel index parvient le plus à ma base et à mes requêtes. Elles sont toutes simples, du genre ajout d'un thread, l'éditer le supprimer de même pour les posts, donc mes clause WHERE portent pratiquement sur les id des deux tables.
A ton avis est-il nécessaire d'indexer mes tables ? ou bien ça vaut pas le coup ?
Merci
Posté : 17 janv. 2008, 21:43
par Hubert Roksor
Ça vaut généralement le coup, encore faut-il choisir les bons index. Tu peux en apprendre plus sur
http://dev.mysql.com/doc/refman/5.0/fr/query-speed.html (pour les anglophones, je recommande la VO qui est mieux à jour)
Posté : 17 janv. 2008, 21:57
par code3
J'ai pas trouvez une réponse à ma question, sur
http://dev.mysql.com/doc/refman/5.0/fr/ ... ation.html mon cas de figure n'est pas mentionné

. Ou bien si je me trompe pas ma base n'a pas besoin d'être indexé.

Posté : 18 janv. 2008, 03:54
par AB
D'une manière générale tu peux indexer tous les champs qui sont concernés après la clause WHERE d'une requête.
Mais ce n'est pas systématique.
Par exemple si tu utilises une requête peu fréquemment. Elle se fera moins vite si le champs de recherche n'est pas indexé mais tu gagneras du temps pour toutes les autres requêtes fréquemment utilisées et qui n'utilisent pas ce champs dans une clause WHERE car l'indexation fait perdre un peu de temps au chargement de la table ...