Aller au contenu

Neoxy

Hubmaster
  • Compteur de contenus

    167
  • Inscrit(e) le

  • Dernière visite

Messages postés par Neoxy

  1. Essaye de faire du référencement et de publier des liens et du contenu sur des sites qui sont suceptibles d'être consultés par les internautes...

    Cette stratégie vise à générer du trafic de la part de vrai visiteurs, et de faire plaisir à google puisque tu développe de la popularité grâce à des sites de qualité ...

  2. C'est un casse tête la transition ISO Utf8...

    Voici les éléments à prendre en compte :

    - Es ce que ton champs en base de donnée est codé en UTF8

    - Es ce que ton fichier (html ou php) est au format UTF8 (tu peux changer le codage avec notepad++ par ex)

    - Et ensuite, la balise méta, ...

  3. Bonjour,

    J'ai cru comprendre qu'un EXPLAIN qui répond un : Using temporary; Using filesort pour une requête Mysql avait besoin d'être revue pour être optimisée...

    Depuis quelques semaines, je fait le tour de mes requêtes en les soumettant à Explain afin de voir si tout va bien, et j'ai un cas de figure bien particulier que je n'arrive pas à cerner d'autant plus que la requête concernée ne me semble pas compliquée...

    Structure des tables :

    table1(id, texte ..... , prio, last_update) : PRIMARY KEY sur id, index composite sur (prio et last update)

    table2(id, zone) : PRIMARY KEY composite sur id, zone et ajout d'un index sur zone

    La table1 comprend près de 150 000 enregistrements et la table2 comprend 450 000 enregistrements... On peut dire qu'il y a 3 enregistrement dans table2 pour un enregistrement pour la table1... (1, n)

    Requête en question

    La requête en question concerne deux tables jointes et comprend un petit tri :

    select id, texte, prio, last_update 
    from table1
    inner join table2 on (table1.id = table2.id)
    where table2.zone = 44
    order by prio desc, last_update desc
    limit 0,10

    Explain de la requête :

    id select_type table type possible_keys key key_len ref rows Extra

    1 SIMPLE table2 ref PRIMARY,zone zone 4 const 162 Using temporary; Using filesort

    1 SIMPLE table1 eq_ref PRIMARY PRIMARY 3 table2.id 1 Using where

    L'exécution de la requête est plutôt rapide : 0,01 secondes (malgrès le nombre d'enregistrements) cependant, je ne comprend pas pourquoi mysql a besoin de créer une table temporaire et d'effectuer un re-tri pour l'exécution de la requête...

    Es ce qu'il y a un oubli ou un rajout de trop au niveau des indexes ?

    Es ce qu'il y a une variable serveur à modifier pour éviter ce genre de message.. ?

    En espérant que ce que je viens d'expliquer est suffisant pour que vous puissiez m'éclairer ! :)

    EDIT : Je crois que cela est lié à l'order by car lorsque je supprime cette clause, je n'ai plus de : Using temporary; Using filesort

    Mais cela m'embête car j'ai besoin de mes tri :)

    Cordialement,

  4. Yep,

    Ben pendant que je fesais mes tests, je suis finalement revenu sur cette solution : index sur table2(zone) + index sur table(activ,id,prio,last_update)

    Les performances sont excellentes, je n'avais jamais pensé qu'on pouvais gérer les indexes de cette façon !! :)

    Du coup, je suis à fond sur mes tests...

    Et merci encore :)

  5. Hello,

    J'ai pu remarqué que l'ordre des colonnes dans la déclaration des clés primaires ou indexes pouvaient avoir des répercussions dans les performances, en l'occurrence, ils ne se comportent pas de la même façon...

    Par exemple : primary(id, zone) va être différent de primary(zone, id)...

    Pareil pour index(prio, last_update) se comporte différement de index(last_update, prio)

    En fonction de quoi devons nous choisir l'ordre des colonnes impliqués dans des clés primaires ou indexes...???

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

×
×
  • Créer...