Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

rvelices
2006-08-14 13:20:16

La requete ImageCommentsCategoriesFRSearchTag prend maintenant entre 1.8 et 2.4 secondes ce qui me parrait plus acceptable (pour >58000 images). Donc je vais utiliser celle ci pour la recherche.

Sinon vimages - toutes les felicitations! Et bon courage!

rub
2006-08-14 11:53:25

vimages a écrit:

bon, demain je passe devant Mr le Maire... et oui... après 12 ans de vie commune... et puis ma fille y tenait!

Toutes mes félications aux mariés!
Mais qui va prendre les photos?

VDigital
2006-08-14 06:51:33

Noceur !!! Noceurs ???


Vive la Mariée !!!
Toutes mes félicitations, Eric ainsi qu'à ta belle.

(12 ans, pas mal...
Pas rapide comme recherche, mais comme quoi les échelles de temps entre mondes réels et virtuels n'ont rien à voir.)
Bref, quelle belle [Evolution], on te pardonne de ne pas avoir de tes nouvelles quelques jours...

Bonne fiasta, bonne Lune.
Bon voyage.

A bientôt, Monsieur le jeune marié.
8-)

vimages
2006-08-14 00:32:07

salut,

je viens de rentrer, je trie et poste quelques photos du week-end, pour la presse...  j'étais au Mont Dore.. gelé ! 8°, ciel gris, pluie, grèle !! et tout ça en moto, chargé comme un âne, (faut bien caser les boîtiers, le 500mm, l'ordi et le reste..)  enfin, je m'égare.... sorry..

bon, je viens de re-télécharger et de re-mettre sur le site le fichier qsearch.php .. modifié, si j'ai bien compris...

il semble que vous ayez bossé dur aussi !

bon, demain je passe devant Mr le Maire... et oui... après 12 ans de vie commune... et puis ma fille y tenait!

alors pas d'internet !  mais à trés bientôt !!


éric.

rvelices
2006-08-11 22:05:39

VDigital a écrit:

J'espère que tu as lu mon post de'Aujourd'hui 19:28:27 .
J'avoue avoir passé plus de temps à lire tes requêtes que le code.

Oui biensur j'ai lu. Ca confirme mes mesures, mais j'aimerai voir ce que ca donne avec 58K photos.

VDigital
2006-08-11 20:11:38

J'espère que tu as lu mon post de'Aujourd'hui 19:28:27 .
J'avoue avoir passé plus de temps à lire tes requêtes que le code.

8-)

rvelices
2006-08-11 19:51:56

En fait la ImageCommentsCategoriesFRSearchTag est celle qui est la plus proche de la realite d'apres moi et celle que je prefere. Elle est plus rapide que la FullTextSearch (la plus grosse - l'initiale). Il faut juste voir ce que ca donne sur la base de vimages.

P.S. J'ai update de nouveau le script (j'avais merde a la fin sur les resultats un array_diff_assoc a la place d'un array_intersect_key - ca n'affecte pas les requetes, mais les resultats affichees)

VDigital
2006-08-11 19:32:50

(
Je n'ai pas regardé en détail mais je suis surpris de relever que le LEFT JOIN de SmartSearch soit plus performant que celui de ImageCommentsFTSearch
)

VDigital
2006-08-11 19:28:27

FullTextSearch a écrit:

SELECT id, MATCH(ft) AGAINST( "xxxxx yyyyy" IN BOOLEAN MODE) AS q FROM (
SELECT
  i.id,  CAST( CONCAT_WS(" ",
    i.file,
    IFNULL(i.name,""),
    IFNULL(i.comment,""),
    IFNULL(GROUP_CONCAT(DISTINCT co.content),""),
    IFNULL(GROUP_CONCAT(DISTINCT t.name),""),
    IFNULL(GROUP_CONCAT(DISTINCT c.dir),""),
    IFNULL(GROUP_CONCAT(DISTINCT c.name),""),
    IFNULL(GROUP_CONCAT(DISTINCT c.comment),"") ) AS CHAR) AS ft
FROM
  (
  (
    (
    (phpwebgallery_images i LEFT JOIN phpwebgallery_image_tag it ON i.id=it.image_id )
      LEFT JOIN
    phpwebgallery_comments co on i.id=co.image_id
  )
    LEFT JOIN
  phpwebgallery_tags t on t.id=it.tag_id
  )
    INNER JOIN
  phpwebgallery_image_category ic on ic.image_id=i.id
  )
    INNER JOIN
  phpwebgallery_categories c on c.id=ic.category_id
GROUP BY i.id)  AS Y
WHERE MATCH(ft) AGAINST( "xxxxx yyyyy" IN BOOLEAN MODE)
ORDER BY q DESC LIMIT 0,50
(this query time : 0.320 s)
(total SQL time  : 0.324 s)
(total time      : 0.368 s)

Reste à éliminer les images n'appartenant pas à aucune catégorie autorisée.
Belle collection de jointures, j'ai un peu de mal à suivre. 8-D
Les colonnes de jointure sont toutes indexées à priori pas de pb.
Le MATCH() AGAINST, j'ai peur qu'il le calcule deux fois.
J'espère qu'il le calcule d'abord pour la clause WHERE puis uniquement sur les lignes résultantes pour calculer q avant de trier sur q
Comment le savoir EXPLAIN ?
Un test sans l'order by mais avec les deux MATCH()
Puis un test toujours sans l'order by et sans celui du select.
Appliqué à un résultat volumineux si la différence est > 20% il faut se poser la question de l'intérêt.
LIMIT ne pouvant être appliquée qu'après tri cela ne change pas grand chose pour MySQL sauf pour le serveur.

Mais pour moi, elle est parfaitement écrite, à la portée d'un développeur sur 10000 quand même mais Bravo.

Analysons vite fait le reste (j'ai abbrégé les requêtes)

Une remarque certaines queries applique le contrôle sur les id non autorisés d'autres non.

ImageFTSearch a écrit:

FROM phpwebgallery_images i
(this query time : 0.006 s)

Très speed.

ImageCommentsFTSearch a écrit:

FROM phpwebgallery_images i
LEFT JOIN phpwebgallery_comments co on i.id=co.image_id
(this query time : 0.063 s)

Un left join = x10

ImageCommentsCategoriesFRSearchTag a écrit:

FROM (
FROM (
  (
    phpwebgallery_images i LEFT JOIN phpwebgallery_comments co on i.id=co.image_id
  )
    INNER JOIN
  phpwebgallery_image_category ic on ic.image_id=i.id
  )
    INNER JOIN
  phpwebgallery_categories c on c.id=ic.category_id
(this query time : 0.049 s)
+
  FROM phpwebgallery_tags
(this query time : 0.028 s)
+
  FROM phpwebgallery_images
    INNER JOIN phpwebgallery_image_category AS ic ON id = ic.image_id
(this query time : 0.003 s)

Je m'attendais à pire du fait du double inner join, bonne surprise.
Total = 0.080 s

SmartSearch a écrit:

FROM phpwebgallery_tags
(this query time : 0.001 s)
+
  FROM phpwebgallery_categories INNER JOIN phpwebgallery_image_category ON id=category_id
(this query time : 0.002 s)
+
FROM (
    FROM phpwebgallery_images i
    LEFT JOIN phpwebgallery_comments co on i.id=co.image_id
(this query time : 0.037 s)
+
  FROM phpwebgallery_images
    INNER JOIN phpwebgallery_image_category AS ic ON id = ic.image_id
(this query time : 0.003 s)

Splendide
Total = 0.043 s

Conclusion : FullTextSearch est très belle pour les amateurs mais les autres sont très loin des 0.320 s
Je ne doute pas que la différence chez Eric sera encore plus grande.

Je te laisse rectifier mes remarques... Encore bravo !!!

8-)

VDigital
2006-08-11 15:55:06

J'ai déjà regardé ta nouvelle version (lecture uniquement), je la testerai aussi sur mon site tout à l'heure...

8-)

rvelices
2006-08-11 15:40:07

J'ai update ma page de recherche en faisant des variations sur la requete. Au retour de vimages je vais lui demander s'il peut remettre la nouvelle version sur son site pour que je teste si d'autres requetes sont plus rapides.

VDigital
2006-08-11 07:16:04

rvelices a écrit:

Pour clarifier les 2 type de recherche:
- l'ancienne reste tel quel
- la nouvelle apparaitra juste qq part sur la page index (dans le menubar ou ailleurs).

Les index fulltext ne sont pas necessaires si la recherche est en mode boolean (c'est le cas). Je vais voir si je peux faire la grosse requete autrement au depens de la qualite des resultats mais au profit du temps d'execution.

Toute l'équipe est d'accord... tant sur le fond que la forme, c'est bien.
Et je rejoins ton avis sur les index fulltext (lesquels posent plus de problèmes de perf qu'ils n'en résolvent (AMHA)).

Je vais aujourd'hui télécharger ton module pour regarder ta requête.
Super! Merci.

rvelices
2006-08-11 00:41:52

Pour clarifier les 2 type de recherche:
- l'ancienne reste tel quel
- la nouvelle apparaitra juste qq part sur la page index (dans le menubar ou ailleurs).

Les index fulltext ne sont pas necessaires si la recherche est en mode boolean (c'est le cas). Je vais voir si je peux faire la grosse requete autrement au depens de la qualite des resultats mais au profit du temps d'execution.

rub
2006-08-10 23:49:54

rvelices a écrit:

rub a écrit:

Les deux recherches seront-elles présentes? Si oui, on peut faire un onglet recherche simplifié et recherche rapide (avec affichage suivant $conf)

J'avais en tete une seule recherche, pas 2. Cette recherche vient s'ajouter a la fonctionnalite de recherche actuelle.

Je ne penses pas qu'il faille ajouter cette nouvelle recherche dans ce qui existe, ca risque de ne pas être clair pour ton le monde. Mieux vaut à mon avis dissocier les deux types de recherches (soit 2 pages, 2 onglets, des zones invisibles qui deviennent visibles, etc.)

rub
2006-08-10 23:45:26

mathiasm a écrit:

pour info, radu: relevance = pertinence :-)

J'ai eu du mal à comprendre!

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact