Comment indexer ?

Eléphant du PHP | 52 Messages

17 janv. 2008, 20:37

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 :oops:

Merci

ViPHP
AB
ViPHP | 5818 Messages

17 janv. 2008, 21:13

Tu vas dans phpmyadmin et tu cliques pour indexer le(s) champ(s) sur le(s)quel(s) tu fait tes recherches

Eléphant du PHP | 52 Messages

17 janv. 2008, 21:27

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

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

17 janv. 2008, 21:43

Ç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)

Eléphant du PHP | 52 Messages

17 janv. 2008, 21:57

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é :oops: . Ou bien si je me trompe pas ma base n'a pas besoin d'être indexé. :roll:

ViPHP
AB
ViPHP | 5818 Messages

18 janv. 2008, 03:54

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 ...