[SGBD/SQL] Utiliser un index ? Quand ? Comment ?

Utiliser un index ? Quand ? Comment ? [SGBD/SQL] - SQL/NoSQL - Programmation

Marsh Posté le 27-03-2008 à 19:02:21    

Hello,
j'aimerais avoir des informations sur "index".
D'après ce que j'ai compris ça permet d'exécuter plus rapidement les SELECT, mais ça ralentis les INSERT.
Je dis pas trop de bêtises ?
 
Et si je décide de mettre des index dans ma table, est ce que je vais devoir modifier les requêtes sur mes pages PHP ou pas ?
 
Est ce que ça peu valoir le coup de mettre mon champ id qui est actuellement en PRIMARY KEY en index ?
 
Merci d'avance pour votre aide ! :)


Message édité par gniii2 le 27-03-2008 à 19:04:56
Reply

Marsh Posté le 27-03-2008 à 19:02:21   

Reply

Marsh Posté le 27-03-2008 à 19:15:31    

Quelques petites révisions sur ce topic : http://forum.hardware.fr/hfr/Progr [...] 6416_1.htm

Reply

Marsh Posté le 27-03-2008 à 19:36:07    

merci c'est très intéressant comme liens ! Je comprend mieux les index :)
Et donc pour être sur : si je met des champs en index, les requêtes SQL que j'utilise actuellement resterons les même donc.
Et comme mettre en index un champ est très simple, je peu facilement modifier les index de ma table pour faire des tests.
Je me trompe pas trop ? ^^
 
Ha, et en ce qui consscerne ca :  

Citation :

Est ce que ça peu valoir le coup de mettre mon champ id qui est actuellement en PRIMARY KEY en index ?


 
Encore merci.


Message édité par gniii2 le 27-03-2008 à 19:37:50
Reply

Marsh Posté le 27-03-2008 à 20:19:20    

Oui, l'ajout ou la suppression d'index ne necessite aucun changement dans les requêtes.
Les primary keys sont déja indexées par défaut.


Message édité par olivthill le 27-03-2008 à 20:20:33
Reply

Marsh Posté le 27-03-2008 à 21:13:57    

Merci beaucoup !
 
Une dernière question à propos des index.
Prenons l'exemple de mon site : un jeu en PHP.
J'utilise souvent l'expérience des joueurs : pour afficher le classement, les joueurs attaquables, la position du joueurs, etc.
Je pensais donc le mettre en index. Mais il y a souvent des UPDATE sur l'expérience d'un joueur.
Est ce que ça peut être intéressant de faire un index sur l'expérience ?

Reply

Marsh Posté le 28-03-2008 à 01:51:50    

a tester.
 
les problèmes de performances de mise à jour des index, ça se pose surtout quand on met à jour des milliers de lignes par seconde... j'imagine que ton jeu en PHP, c'est plutôt de l'ordre de 1000 lignes toutes les heures.
vérifie tout de même dans la doc de mysql que tes index se réordonnent automatiquement : en effet, un index, ça se résume grossomodo comme un arbre, et qui dit arbre, dit chutte massive des performances lorsqu'il est déséquilibré (ce qu'on appelle pollution pour un index). généralement, les SGBD actuel réordonnent automatiquement les index lorsqu'ils détectent une trop grand pollution quand ils sont paramétrés par défaut, mais ce n'est pas toujours le cas : à surveiller donc

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed