Bonjour à tous, je doit effectuer un traitement sur des tables assez grosse !
le but étant de sélectionner au harsard 5 ouvrages dans une table en contenant 900 000.
- la table www_general nous sert uniquement a recupérer la valeur gen_chapid_impress.
- la table cat contient les id des categorie contenant plusieur ouvrage.
- la table www_books contient les 900 000 ouvrages.
- la table abs contient les résumé de chaque ouvrage, 2800 ouvrage ont un résumé
j'ai procédé de lasorte (sans vouloir inclure la table avec les résumé avant tout) :
bon persos cette requete la bouffe pas enormement car comme vous pouvez le voir elle est tt de meme filtrée, elle doit durer 0.3s a tt cassée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 select a.art_id from www_general,www_cat as a,www_books as b where cont_cat_top_id=gen_chapid_impress and b.art_id = a.art_id and vignette = 'O' and (public_flag = 'P' or public_flag = 'G' or public_flag = 'C') order by rand() fetch first 5 rows only
mais si on peut l'améliorer faite moi signe.
le problème se passe apres, pour chaque ouvrage sélectionné, je doit récupérer le resumé de l'ouvrage, le pb c'est que j'aimerai tt aire en 1 requete, mais des que je fait une jointure avec les 3 table dans la premiere requete le temp d'exécution devient énorme.
mais voila, le temp augmente considerablement, normal en meme temp, il doit y avoir a peu pret 28000 enregistrement, a cause de la table www_abs ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 select a.art_id, abs from www_general,www_cat as a,www_books as b, www_abs as abs where cont_cat_top_id=gen_chapid_impress and a.art_id = abs.art_id and valid = \'V\' and (abs_librairie = '' or abs_librairie='libsav' or abs_librairie='biblioteca') and b.art_id = a.art_id and vignette = 'O' and (public_flag = 'P' or public_flag = 'G' or public_flag = 'C') order by[/b] rand() fetch first 5 rows only
je ne vois pas comment optimiser.
pour etre un peu plus clair, j'aimerai donc, recupérer 5 ouvrages avec leur résumé (s'il en non ou pas) dont leur cont_cat_top_id = gen_chapid_impress
Partager