Optimisation recherche sur grosse table mysql

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Zecat, 30 Mars 2013.

  1. Zecat
    Zecat WRInaute accro
    Inscrit:
    1 Mars 2005
    Messages:
    9 119
    J'aime reçus:
    1
    Le contexte : une table de 450.000 records et deux champs A (mediumint) et B(mediumint). je dois faire une recherche de type A like nnn AND B like mmmmmm ...

    Est ce que cela présente un intéret de creer un champs C (varchar 10) dans lequel je concatene A et B pour au final me ramener a une recherche de type C like "nnn/mmmmmm" ? Ou est ce que mysql dispose d'optimisations internes qui font que le gain sera marginal ?
     
  2. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1
    la première optimisation serait de se passer du like pour une égalité par exemple
    peux tu donner un exemple concret de contenu
     
  3. Zecat
    Zecat WRInaute accro
    Inscrit:
    1 Mars 2005
    Messages:
    9 119
    J'aime reçus:
    1
    sorry je pensais egal et j ai ecris like ....

    Pou rle contenu c'est un table xref (ref croisées) et donc les deux champs medium int sont simplement des cle numeriques qui vont de 1 à 450000 pour la grande et de 1 à 250 pour le petite .... je vois pas quoi dire de plus

    Sinon j'ai posté un autre post ... sans reponse sniff

    https://www.webrankinfo.com/forum/t/du-bon-usage-des-tableaux-en-_session.163643/

    si tu as un avis ?
     
  4. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    Ça dépend de l'utilisation de la table.
    La seule optimisation que je verrai par rapport à ce que tu nous rapporte, c'est la création d'un index sur les deux champs. Ceci permet à MySQL de stocker des informations sur les liaisons entre ces deux champs d'accélérer la recherche.
    Grâce au index, le moteur n'est pas obligé de parcourir toute la table pour trouver ce que tu lui demandes, par exemple, il va savoir que xxx est présent n fois dans la colonne A, etc.

    Après, si à coté la base de données dans sa globalité est mal construite, il est alors préférable d'y revoir sa structure.
     
  5. Zecat
    Zecat WRInaute accro
    Inscrit:
    1 Mars 2005
    Messages:
    9 119
    J'aime reçus:
    1
    j ai oublie d epreciser que les deux champs A et B sont indexés of course ...

    Donc ma question porte bien sur le gain apporté par une recherche monochamp alpah ^par <rapport a une recherche multi champs mediumint ...

    Sinon cote structure de base, ca fait 20 ans que je bouffe du merise et de l'entité association ... alors je pense que de ce coté c'est blindé ... :wink:
     
  6. Zecat
    Zecat WRInaute accro
    Inscrit:
    1 Mars 2005
    Messages:
    9 119
    J'aime reçus:
    1
    Je connais moins bien les entrailles de mysql que d'autres bdd. Mysql procède comment en interne ? il crée deux ensembles sous form de blob et fait une intersection de bits ?
     
  7. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    Je ne connais pas vraiment le fonctionnement interne de MySQL, mais je sais que c'est un SGBD et que son rôle est de gérer des données. Il ne serait pas capable d'optimiser correctement ce genre de recherche, je doute qu'il serait utilisé par de gros site.
    Tu sais, tes 450k d'entrées, c'est pas grand chose au final par rapport à d'autre grosse base de données.

    Savoir comment procède MySQL, est-ce si important ? Non. Toi, tu es utilisateur. Ton rôle est de mettre en place les outils nécessaires pour indiquer à MySQL comment gérer tes données (quand plusieurs chemins sont possibles, tu lui indiques le meilleur, ici les index). À MySQL de se débrouiller à partir de là.

    Si tu as des problèmes de performance, le souci n'est peut-être pas là.
     
  8. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1
    Le coup des indexs ça peut se vérifier a la mano assez vite avec un script de bench maison qui font mouliner un peut la table sur des critères semblables.
    Après faut aussi réfléchir si il n'existe pas une combinaison numérique des tes deux champs qui réduirait la requête a un simple sélect sur une égalité et là tu pourra difficilement faire plus rapide (c'est l'idée de ta concaténation mais version numérique)
     
  9. Zecat
    Zecat WRInaute accro
    Inscrit:
    1 Mars 2005
    Messages:
    9 119
    J'aime reçus:
    1
    bon sang mais c'est bien sur ... arf je suis fatigué ce soir :

    c=(a*1000)+b (puisque b ne depasse pas 250 ...)

    et voila :wink:
     
  10. Zecat
    Zecat WRInaute accro
    Inscrit:
    1 Mars 2005
    Messages:
    9 119
    J'aime reçus:
    1
    C'est mon coté "je veux voir sous le capot ... ca doit remonter à l'époque ou je codais en assembleur sur des "grosses becannes" de la taille de deux frigos ... avec 128k de memoire centrale (un truc que les moins de 40 ans ne connaissent pas) :mrgreen:
    nan pas de bleme de perf, le site est en dev avec une base de test toute petite mais comme je connais les volumétries avec la base pleine, j'anticipe ...
     
  11. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1
    Arf !!! tu jouais chez les riches ! quand j'avais 1k de dispo j'étais au 7e ciel perso :D
    C'est d'autant plus amusant que de nos jours on croise des mecs qui sont capable de crawler 200 000 pages de l'autre côté de la planète pour voir si par hasard leur sitemap est a jour ...
     
  12. Zecat
    Zecat WRInaute accro
    Inscrit:
    1 Mars 2005
    Messages:
    9 119
    J'aime reçus:
    1
    De mémoire : 61/40 honeywell bull "boosté" en 61dps (j 'adore le terme boosté !!!) puis ensuite, mais la c'était ZE power :roll: , Mini 6/Dps 6. Bon j'ai dit 128k mais c'est au pif, me souviens plus .. si ca se trouve c'etait 24k ...
     
Chargement...
Similar Threads - Optimisation recherche grosse Forum Date
Optimisation URL pour les moteurs de recherche Débuter en référencement 15 Novembre 2020
Mémoire de recherche appliqué sur les techniques d'optimisations du référencement Référencement Google 7 Mars 2011
Conseils d'optimisation pour la recherche universelle Référencement Google 27 Février 2008
optimisation de script pour moteur de recherche Référencement Google 21 Juin 2007
Optimisation DNS d'un moteur de recherche Développement d'un site Web ou d'une appli mobile 18 Janvier 2007
Recherche d'un logiciel d'optimisation positions Google Référencement Google 26 Octobre 2006
Optimisation d' un site avec Yoast Débuter en référencement 5 Mai 2022
WordPress Avis et question concernant une optimisation dû à de multiples sites Demandes d'avis et de conseils sur vos sites 18 Avril 2022
Optimisation publication FB Facebook 14 Avril 2022
Optimisation d'une page : Titre du Site et Menu comment les inclure? Débuter en référencement 13 Septembre 2021
Astuce Optimisation des URLs Débuter en référencement 15 Juin 2021
WordPress PageSpeed - optimisation - fonts Développement d'un site Web ou d'une appli mobile 27 Janvier 2021
Optimisation SXO de site web de mon agence Référencement Google 22 Janvier 2021
Avis et optimisation sur blog voyage Demandes d'avis et de conseils sur vos sites 24 Décembre 2020
Optimisation du Cumulative Layout Shift (CLS) Référencement Google 8 Décembre 2020
Optimisation site Wordpress Débuter en référencement 21 Août 2020
Optimisation des publicités / revenus AdSense 19 Juillet 2020
WordPress optimisation des temps de chargements Débuter en référencement 28 Juin 2020
Optimisation pour la catégorie de produits de commerce électronique Rédaction web et référencement 26 Juin 2020
Astuce optimisation image au format Webp YouTube, Google Images et Google Maps 6 Avril 2020