Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

Optimisation sql

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
xTrade
WRInaute accro
WRInaute accro

Inscrit le: 11 Déc 2006
Messages: 2022

URL permanente de ce messagePosté le : Lun Fév 12, 2007 18:55    Sujet du message: Optimisation sql

Supposons que je crée une table contenant tous les os de mes visiteurs, table utilisée à chaque visite.

Si je réordonne régulièrement cette table, avec l'os le plus fréquent en 1er et le moins fréquent en dernier, est-ce que cela a une influence sur la vitesse de recherche (vu que la valeur la plus fréquente est en 1ère position) ?
 
xTrade Visiter le site web du posteur
arnaudmn
WRInaute accro
WRInaute accro

Inscrit le: 11 Mai 2005
Messages: 1420

URL permanente de ce messagePosté le : Lun Fév 12, 2007 18:57    Sujet du message: Optimisation sql

L'ordre d'affichage et l'ordre de stockage n'ont rien a voir.
Pour trier il faut des index. Si tu as un index sur l'os, la recherche ira plus vite. Et l'insertion sera plus lente.
 
arnaudmn Visiter le site web du posteur
xTrade
WRInaute accro
WRInaute accro

Inscrit le: 11 Déc 2006
Messages: 2022

URL permanente de ce messagePosté le : Lun Fév 12, 2007 19:00    Sujet du message: Optimisation sql

Ok.

Et si je mets l'os en clé primaire, c'est utile?
 
xTrade Visiter le site web du posteur
arnaudmn
WRInaute accro
WRInaute accro

Inscrit le: 11 Mai 2005
Messages: 1420

URL permanente de ce messagePosté le : Lun Fév 12, 2007 19:05    Sujet du message: Optimisation sql

xTrade a écrit:
Ok.

Et si je mets l'os en clé primaire, c'est utile?


Ca dépend de ce que tu mets dans ta table Smile
Si tu veux faire une table dans laquelle tu mémorise juste le nombre de visite par os, avec comme champ "os" et "quantite" par exemple, oui, il _faut_ mettre os comme clé primaire. La clé primaire c'est ce qui identifi de manière unique une ligne de la table, donc dans ce cas c'est "os" qui est l'identifiant.
 
arnaudmn Visiter le site web du posteur
xTrade
WRInaute accro
WRInaute accro

Inscrit le: 11 Déc 2006
Messages: 2022

URL permanente de ce messagePosté le : Lun Fév 12, 2007 19:15    Sujet du message: Optimisation sql

arnaudmn a écrit:
Ca dépend de ce que tu mets dans ta table Smile
Si tu veux faire une table dans laquelle tu mémorise juste le nombre de visite par os, avec comme champ "os" et "quantite" par exemple, oui, il _faut_ mettre os comme clé primaire. La clé primaire c'est ce qui identifi de manière unique une ligne de la table, donc dans ce cas c'est "os" qui est l'identifiant.


En fait, ce que je veux mettre dans la table, c'est la correspondance entre "user agent" et os+browser, sans à avoir à tout rechercher (comme le fait le script sur lequel je me base)

En gros, dès que je récupère le "user agent", je veux regarder le plus rapidement possible dans la table s'il existe, puis récupérer l'id de l'os et du browser (et l'ajouter dans le cas où l'agent n'était pas présent)

Donc dans ce cas là, vaut-il mieux index+clé primaire (si c'est possible) ou bien clé primaire sur l'agent?
 
xTrade Visiter le site web du posteur
arnaudmn
WRInaute accro
WRInaute accro

Inscrit le: 11 Mai 2005
Messages: 1420

URL permanente de ce messagePosté le : Lun Fév 12, 2007 19:19    Sujet du message: Optimisation sql

xTrade a écrit:

Donc dans ce cas là, vaut-il mieux index+clé primaire (si c'est possible) ou bien clé primaire sur l'agent?


Une clé primaire est obligatoirement indexée Smile
 
arnaudmn Visiter le site web du posteur
xTrade
WRInaute accro
WRInaute accro

Inscrit le: 11 Déc 2006
Messages: 2022

URL permanente de ce messagePosté le : Lun Fév 12, 2007 19:24    Sujet du message: Optimisation sql

arnaudmn a écrit:
xTrade a écrit:

Donc dans ce cas là, vaut-il mieux index+clé primaire (si c'est possible) ou bien clé primaire sur l'agent?


Une clé primaire est obligatoirement indexée Smile


Ah! Ok, merci!
J'en apprends tous les jours!
 
xTrade Visiter le site web du posteur
fablezouave
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 20 Déc 2006
Messages: 109
Localisation: Montreuil, 93

URL permanente de ce messagePosté le : Lun Fév 12, 2007 19:47    Sujet du message: Optimisation sql

salut

Je dirais même plus, une clé primaire, c'est un INDEX (comme les autres) qui a une contrainte UNIQUE, c'est à dire qu'il ne pourra pas y avoir 2 lignes contenant 'windows' dans ta table. Après c'est à toi de voir si tu stockes 1 ligne par visiteur, ou une ligne par OS .... mais dans tous les cas, il te faut indexer cette colonne.

fab
 
fablezouave Visiter le site web du posteur
xTrade
WRInaute accro
WRInaute accro

Inscrit le: 11 Déc 2006
Messages: 2022

URL permanente de ce messagePosté le : Mar Fév 13, 2007 1:04    Sujet du message: Optimisation sql

Merci pour vos réponses.

Et donc une nouvelle question Wink

J'ai besoin d'additionner, pour toutes les valeurs de la table, une colonne 'hits'.

Est-ce plus rapide d'utiliser "SELECT SUM(hits) FROM table" ou bien un "SELECT hits FROM table" puis d'additionner avec une boucle?

Je pencherais pour la 1ère solution, mais comme je découvre mysql...
 
xTrade Visiter le site web du posteur
arnaudmn
WRInaute accro
WRInaute accro

Inscrit le: 11 Mai 2005
Messages: 1420

URL permanente de ce messagePosté le : Mar Fév 13, 2007 14:29    Sujet du message: Optimisation sql

xTrade a écrit:

Est-ce plus rapide d'utiliser "SELECT SUM(hits) FROM table" ou bien un "SELECT hits FROM table" puis d'additionner avec une boucle?


La première est plus rapide. Ca evite au moteur de gérer un pointeur et de faire une copie du résultat de la requete en mémoire.
 
arnaudmn Visiter le site web du posteur
xTrade
WRInaute accro
WRInaute accro

Inscrit le: 11 Déc 2006
Messages: 2022

URL permanente de ce messagePosté le : Jeu Fév 15, 2007 21:15    Sujet du message: Optimisation sql

Toujours dans ma découverte de Mysql, j'ai une nouvelle question Wink

J'ai vu sur un forum qu'il conseillaient d'utiliser LIMIT 0,1 lorsqu'on était sur que la recherche ne donnait qu'un résultat.

Si je fais ma recherche sur une clé primaire, est-ce utile?

Merci!
 
xTrade Visiter le site web du posteur
arnaudmn
WRInaute accro
WRInaute accro

Inscrit le: 11 Mai 2005
Messages: 1420

URL permanente de ce messagePosté le : Jeu Fév 15, 2007 21:31    Sujet du message: Optimisation sql

LIMIT 0,1 c'est pour forcer le moteur a ne pas chercher plus de 1 enregistrement. Si tu fais une requete sur une clé primaire, donc unique, ça ne sert à rien.
Pour ma part je l'ai jamais utilisé quand je sais que j'ai au plus un résultat.
 
arnaudmn Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort