-
Compteur de contenus
167 -
Inscrit(e) le
-
Dernière visite
Tout ce qui a été posté par Neoxy
-
Hello Jacques, Ca va enfin beaucoup beaucoup mieux, mes requêtes s'exécutent en 0,01 secondes, c'est beaucoup mieux Du coup, j'ai revu les indexes et j'ai suivis ce conseil : - index sur table2(Zone) + index sur table(active,prio,last_update) Je vais jouer encore avec les indexes pour voir si je peux encore améliorer les perfs Merci encore beaucoup !!!
-
Mais si j'ai déja une clé primaire sur ces deux champs, ça devrait être suffisant, non ?
-
Erf, A force de supprimer et de recréer les indexes, mes requêtes s'executent maintenant en plusieurs secondes... Je suis très embeté... D'ou cela peut-il venir ?
-
Il y a entre 1 et 4 enregistrements dans la table2 pour un enregistrement de la table1 Il y a entre 1 et 6 enregistrements dans la table3 pour un enregistrement de la table1 En ce qui concerne les indexs, je les ai bien placé la ou il faut... De plus, pour id ou autres, ce sont déjà des clés primaires... Je pense qu'on ne peu pas créer d'indexes sur une clé primaire non ? (en tout cas, phpymadmin n'est pas content quand je crée un indexe sur un champs qui est déjà index ou clé primaire)... Merci jacques pour ta réactivité et tes réponses ..
-
Tous les champs sélectionnés proviennent de la table1 La table 2 contient 450 000 enregistrements et contient 2 colonnes (id, zone)... La table 3 contient 750 000 enregistrements et contient 3 colonnes (id, lang, texte)... Les écarts de vitesses se ressentent réellement en tripotant l'order by, sachant que prio est un tinyint(2) et last_update est un datetime...
-
Hello, J'avais complètement oublié qu'on pouvait poser un index sur plusieurs colonnes, alors j'ai effectué quelques tests... et les résultats sont assez bizarres, voici ma requète : select id, ref, titre, descr, ville, prio, activ FROM table INNER JOIN table2 ON (table.id = table2.annonce) LEFT JOIN table3 ON (table3.id = table.id and table3.lang = "fr") where table.activ=1 and table2.zone =43 [b]order by prio desc, last_update desc[/b] limit 0, 10 Ce matin, j'avais un index sur prio, et un autre index sur last_update, du coup, lorsque j'enlevais last_update desc, ou prio desc, la vitesse de ma requète était bien bien plus rapide contre 0,50 secondes lorsqu'il y a les deux Du coup, je viens de supprimer mes deux index, et j'ai créé un nouvel index sur les 2 colonnes prio et last_update... Et la requête est maintenant beaucoup plus lente (plusieurs secondes d'execution...) Voici un explain : id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE table index PRIMARY tri_ann 9 NULL 151300 Using where 1 SIMPLE table2 eq_ref PRIMARY PRIMARY 6 BASE.table.id,const 1 Using where; Using index 1 SIMPLE table3 eq_ref PRIMARY PRIMARY 6 BASE.table.id,const 1 Ce qui est vraiment bizarre, c'est que lorsque je change where table2.zone =43 par where table2.zone =2, la vitesse d'execution varie énormément... Donc, j'avoue que je suis bien bien perdu !!!
-
Bonjour, J'ai une requête exécutée sur une table avec 150 000 enregistrement qui me pose un soucis.. En effet, celle ci prend 0,50 secondes à s'exécuter... Et je trouve que cela n'est pas très optimisé... Alors en fouillant et en tripotant un peu ma requête, j'ai remarqué que la clause ORDER By était assez gourmande en temps d'exécution surtout quand ci effectue un tri sur deux champs.... En effectuant des tests, lorsque je ne laisse qu'un champs dans l'order by, la requete s'execute alors en 0,0008 secondes (bien plus rapide)... Cependant, j'ai besoin d'effectuer un tri sur deux champs et je suis serieusement coincé... Es ce qu'il existe une méthode, ou une solution de substitution afin d'effectuer un tri sur mes deux champs de façon à ce que ma requête soit plus rapide??? J'ai revu tous les champs de mes tables pour les optimiser, j'ai placé des indexs la ou il faut... J'ai par ailleurs tripoter les variables system comme le sort_buffer afin d'optimiser, mais rien de concluant... Avez vous eu un retour d'expérience sur des ralentissements de requêtes SQL qui prenaient du temps lorsque l'order by triais deux colonnes ??? Cordialement,
-
Ben ouai, bienvenue à toi Julien, et vive l'industrie du PHP, looool !
-
Du coup je viens de comprendre... Si j'ai bien compris, la requête parcourt les 59371 enregistrements... D'ou l'intérêt de placer des indexes Cependant, j'ai une autre question, es ce qu'on peu se permettre de placer un index sur une colonne déjà concernée par une clé primaire double... En effet, je viens de faire un petit test.. PhpMyAdmin n'a pas l'air d'aimer cela, mais j'ai gagné énormément de temps sur mes requetes avec ce petit ajout... Qu'en pensez vous ?? Cordialement,
-
Bonjour, Je souhaiterais optimiser ma requête et ma base de donnée, cependant, j'ai bien mis de bons indexes la ou il fallait !!! J'ai fait un explain, et mysql me retourne la réponse suivante : id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE a ALL PRIMARY,type NULL NULL NULL 59371 Using where; Using filesort J'aimerais comprendre celle ligne car je ne la comprend pas... Cordialement,
-
Avec plaisir ! C'est vrai que tu as raison SARC, je vais éclaircir mon soucis... En fait, je cherchais à optimiser la vitesse de mes requêtes, qui prenaient parfois plus d'une seconde pour s'exécuter... Après de nombreux tests et lectures sur le net, j'ai remarqué que la clause Mysql : SQL_CALC_FOUND_ROWS doublait la vitesse d'exécution de ma requete ... Cette clause permet de calculer et de retourner le nombre de résultats total d'une requête (sans prendre en compte les limits...) en une seule requete : idéal pour un système de pagination... Cependant, j'ai remarqué que je gagnais du temps en exécutant une seconde requête du type : select count (id)... pour connaitre le nombre total de résultats... Voila, je pensais par ailleurs avoir un soucis avec les left join, mais en fait, ce n'est pas le cas ! J'espère que ma réponse pourra aider des développeurs qui se sont arrachés les cheveux comme moi
-
Hello, Finalement, j'ai résolu mon soucis j'ai réussis à optimiser mes requetes comme je le voulais Merci pour votre participation !
-
Hello à vous et merci pour vos réponses... Il me semblait que ce modele de donnée était le plus adapté ... Mais j'ai quand même eu un petit doute Pour les index, je pense que c'est ok puisque les champs langue et id_produits sont en clé primaire (donc à prioris, pas besoin de rajouter d'index...) J'ai veillé à ce que les indexs soient correctement placés dans les bons champs.... En fait, j'ai trouvé d'autres pistes concernant la lenteur des requetes, notamment l'utilisation de SQL_CALC_FOUND_ROWS qui a tendance à doubler le temps d'execution... J'ai aussi remarqué qu'une jointure Left Join ralentissait la requete quand on j'effectue un where sur un des champs concerné... Es ce que vous avez remarqué que left join étais gourmand en ressources lorsqu'on pose une contrainte sur l'un des champs ??? c
-
Donc si je comprend bien, je modèle que j'utilise actuellement est plutôt correct, mais est-il optimisé et rapide ??? C'est vrai que si je met tout dans une seule table, je risque d'avoir des données Null, car tous les contenus ne seront pas traduits... J'ai déja posé des indexes sur les champs concernés par des contraintes (where) Mais le soucis, c'est que j'ai beaucoup de données, et mes requetes sont quand même lentes (plus d'1 seconde) car ma requete utilise 3 ou 4 jointures... Es ce que ce ne serait pas mieux d'effectuer une requete sur une table de 50 000 tuples avec peu de jointures, (avec quelques cases vides) Car effectuer une requete avec plein de jointures sur des tables comprenant des centaines de milliers d'enregistrement semble assez lourd... Après, si je dois modifier la structure de mes tables et des requêtes, c'est pas grave Je recherche la performance et l'optimisation
-
Bonjour, Je développe actuellement un site en plusieurs langues, cependant, j'ai des doutes concernant l'optimisation de la structure de mes tables... En, effet, j'ai une table produit et une table description qui comprend des contenus traduits : Table Produit : id_produit.. Nom_produit, prix_produit... Table Description : id_produit, langue, contenu... Sachant que je lie la table produit à la table description lorsque je cherche une description dans une langue précise.. Le soucis avec la table description est que je dois créer une ligne pour chaque description : Example 1 - fr - "Description FR blablabla" 1 - en - "Description EN blablabla" 1 - es - "Description ES blablabla"... Le modele actuel me permet de bénéficier d'une table avec 3 colones, mais 1 000 000 d'enregistrement (du fait du nombre de langues)... Je voulais savoir s'il serais pas plus judicieux et optimisé de créer une ligne par description : Table Description : id_produit, contenuFR, contenuES, contenuIT.... (dans ce cas la, je pourrais aussi mettre les collones contenuFR, contenuES, contenuIT dans la produits...) Pour ce modèle la, j'ai une table avec plus de colones (parfois vides), mais beaucoup moins de lignes (environ 50 000)... Ma question générale est : Es ce qu'on dois privilégier les données sur une seule table en multipliant les colones, ou es ce que je dois privilégier, l'éclatement des données en travaillant sur plusieurs tables, afin d'effectuer de belles jointures lors de mes requetes... Je cherche à optimiser les performances Mysql, car il y a un paquet de données... Et j'ai remarqué que les jointures pouvaient prendre du temps à mysql pour retourner des résultats, surtout s'il y a beaucoup de données... Merci d'avances pour vos idée
-
Comment améliorer la popularité de son site ?
Neoxy a répondu à Arlette - Forum : Techniques de Promotion
Super article qui récapitule très bien les stratégies de Netlinking !!! Je reste quand même septique concernant les échanges de liens bilateraux (considérés comme inutiles...) Même si les échanges de liens triangulaires sont plus performants, je pense que les liens bilatéraux ne sont pas inutiles... Cordialement -
Cohabitation de menu dynamique javascript et contenu flash...
Neoxy a ajouté un sujet dans AjaX et JavaScript
Bonjour, je suis un peu embêté car je ne trouve pas de solutions à mon problème. J'ai placé une map en Flash sur mon site www.Sun-location.fr, cependant, lorsque l'on passe la souris sur le menu de gauche, les sous menu dynamique s'affichent en dessous du flash, du coup, ils ne sont pas accessibles... j'ai pu lire sur divers forum qu'il faut utiliser <param name="wmode" value="transparent"> cependant, ca ne marche pas quand même !!! Si quelqu'un a une idée ... je lui en serait très reconnaissant !!! Merci d'avance pour vos réponses -
Ou demander l'avis des internautes à propos d'un site ?
Neoxy a répondu à Neoxy - Forum : Le salon de Webmaster Hub
Salut, Effectivement, c'est plus intéressant de poser une question ciblé que de poser une question très vague ou généraliste... Alors à ce moment, la, es ce que je peux poser un post sur le forum en posant , les question suivantes (en même temps): Bonjour, que pensez-vous de mon référencement? Bonjour, que pensez vous de la charte graphique de mon site ? Bonjour, que pensez vous de l'ergonomie du site ? Que pensez-vous de la validité de mon code ? Plutôt qu'une question généraliste, et au lieu de déposer les questions sur des rubriques différentes !?! -
Ou demander l'avis des internautes à propos d'un site ?
Neoxy a répondu à Neoxy - Forum : Le salon de Webmaster Hub
Hello, Merci pour vos réponses, je suis allé faire quelques tour sur quelques forum pour demander des avis Sur wri entre autre -
Ou demander l'avis des internautes à propos d'un site ?
Neoxy a répondu à Neoxy - Forum : Le salon de Webmaster Hub
Bonjour, Merci pour vos réponses... Hélas, je n'ai pas une grande quantité d'ami qui soient capable d'apporter une analyse suffisante en terme de webdesign, ergonomie, développement, optimisation, accessibilité... etc etc... Pour ma part, j'essaye d'améliorer mes compétences dans tous ces derniers domaines cités afin de créer quelquechose d'intéressant sur le net... Sinon, je ne suis pas un sans amis, je manque juste d'un peu de connaissances ayant les mêmes passion d'internet L'objectif de ma demande est de connaitre l'avis de passionnés ou de pros en ce qui concerne mon site de location de vacances en signature Je me suis quand même débrouillé pour demander des avis, remarques, critiques sur d'autres sites et les réponses sont assez pertinentes ! Dommage qu'il n'y ai pas de rubrique d'avis (même en no follow) pour que la communauté HUB puisse réagir, conseiller et critiquer snif !!! Merci quand même poru vos réposnes ! -
Ou demander l'avis des internautes à propos d'un site ?
Neoxy a ajouté un sujet dans Le salon de Webmaster Hub
Bonjour, Sur quels forums pourrais-je publier un post afin de demander aux membre avis et leur vision sur un site internet que je développe depuis 3 ans à titre perso... Cordialement, -
Communiqués de Presse et référencement
Neoxy a répondu à le Kid - Forum : Techniques de Référencement
Le communiqué de presses est une façon comme une autre de faire parler de sont site !... -
Emploi du temps d'un référenceur type
Neoxy a répondu à Refschool - Forum : Techniques de Référencement
Hello Le référenceur a tant de choses à faire .... Tout dépend effectivement de la personnalité, de l'organisation, ou de la web agency ... Tout dépend aussi des outils utilisés, et qui accompagnent les référenceurs dans leur boulot ... - Générateur de sitemap... - Outils de suivi de positionnement... - Outils de stats de trafic... - Applications web diverses et variés ... Il y a tant de choses à faire -
Comment faire pour referencer un site multi-categories?
Neoxy a répondu à ayendail - Forum : Techniques de Référencement
Hello Le référencement ou le positionnement dépend de la popularité d'un site ! (Nombres de liens pointant dessus par exemple Pour un site multi catégories, il est important d'apporter de la popularité à tes pages interne... Il est alors important de référencer les pages du site plutôt qu'un site dans sa globalité... -
Délais et temps de reconnaissance par Google
Neoxy a répondu à FranckB - Forum : Techniques de Référencement
Salut... Quelle méthode utilise tu ? Les requêtes que tu vise sont elles trop concurentielles ?