Problème avec les index

Problème avec les index - SQL/NoSQL - Programmation

Marsh Posté le 01-05-2004 à 23:15:20    

Yop all
les id en auto_increment sont il des index à la base ?
cad, est ce que je dois mettre des index dessus ?
Est ce que il vaut mieux faire un index sur une seule collone sachant que ainsi il sera plus léger, ou le faire sur plusieurs collone au risque qu'il soit plus lourd mais plus complet ?

Reply

Marsh Posté le 01-05-2004 à 23:15:20   

Reply

Marsh Posté le 01-05-2004 à 23:34:15    

> les id en auto_increment sont il des index à la base ?
Oui, obligatoirement. Un champ en auto_increment doit être indexé.
 
> cad, est ce que je dois mettre des index dessus ?
Oui, tu n'as pas le choix. Tu aurais un message d'erreur en créant une table sans définir de clef sur un champ en auto_increment ("#1075 - Incorrect table definition; There can only be one auto column and it must be defined as a key" )
 
> Est ce que il vaut mieux faire un index sur une seule collone sachant que ainsi il sera plus léger, ou le faire sur plusieurs collone au risque qu'il soit plus lourd mais plus complet ?
Tout dépend de l'utilisation que tu fais de tes tables [:spamafote] Si tu as un index composé sur (champ1 - champ2) et que tu as une requête de type SELECT [...] WHERE champ1 = $y AND champ2 = $x alors oui, il te sera utile. Dans le cas contraire privilégie un index sur une seule colonne :)

Reply

Marsh Posté le 02-05-2004 à 00:18:04    

merci ;)
là je suis motiver pour diminuer les temps de génération de mon forums.
Pourtant je pige pas un truc, la connection à ma bdd prend à elle seul 0.008 sec.
Mes quelques requète pour chercher des infos me font prendre 0.012 sec.
Et au final avec la génération de mon skin et l'affichage sa me fait du 0.05 sec ce qui fait pas super top.
Le tout sous widows celeron 2400, 750mo de ram...
Si je fais des left join pour chercher mes infos dans mes tables, sa ira réelement plus vite ?

Reply

Marsh Posté le 02-05-2004 à 00:29:13    

Un LEFT JOIN ne sera pas nécessairement plus rapide que deux requêtes séparée, mais peut donner des résultats intéressants via le QUERY CACHE. Tout dépend de la fréquence à laquelle les tables que tu vas joindre sont modifiées.
 
Il n'y a pas de réponse universelle, le mieux est de tester ;)

Reply

Sujets relatifs:

Leave a Replay

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